mirror of
https://github.com/roytam1/mozilla45esr.git
synced 2026-05-26 15:39:48 +00:00
import changes from tenfourfox:
- #559: M1547757 M1539219 M1548306 M1558548 (fa8b0e673) (with M1558548 excluded since we have newer NSS) - #559: M1550498 M1548822 M1540759(partial) M1528481(+WeakPtr for Http2Stream) M1555523 M1552541 (464968706) - #559: M1547266 (97b8db0b7) - #559: update certs, TLDs, pins, etc. (6d4ac2eb4)
This commit is contained in:
@@ -2130,11 +2130,13 @@ nsGlobalWindow::WouldReuseInnerWindow(nsIDocument* aNewDocument)
|
||||
}
|
||||
|
||||
bool equal;
|
||||
if (NS_SUCCEEDED(mDoc->NodePrincipal()->Equals(aNewDocument->NodePrincipal(),
|
||||
&equal)) &&
|
||||
equal) {
|
||||
if (NS_SUCCEEDED(
|
||||
BasePrincipal::Cast(mDoc->NodePrincipal())->
|
||||
EqualsConsideringDomain(aNewDocument->NodePrincipal(),
|
||||
&equal))) {
|
||||
// Return the result. If true (bug 1552541):
|
||||
// The origin is the same.
|
||||
return true;
|
||||
return equal;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
@@ -2214,9 +2214,14 @@ BackgroundVersionChangeTransactionChild::RecvComplete(const nsresult& aResult)
|
||||
database->Close();
|
||||
}
|
||||
|
||||
RefPtr<IDBOpenDBRequest> request = mOpenDBRequest;
|
||||
MOZ_ASSERT(request);
|
||||
|
||||
mTransaction->FireCompleteOrAbortEvents(aResult);
|
||||
|
||||
mOpenDBRequest->SetTransaction(nullptr);
|
||||
request->SetTransaction(nullptr);
|
||||
request = nullptr;
|
||||
|
||||
mOpenDBRequest = nullptr;
|
||||
|
||||
NoteComplete();
|
||||
|
||||
@@ -1567,7 +1567,7 @@ void BaseMediaResource::SetLoadInBackground(bool aLoadInBackground) {
|
||||
NS_WARNING("Null owner in MediaResource::SetLoadInBackground()");
|
||||
return;
|
||||
}
|
||||
dom::HTMLMediaElement* element = owner->GetMediaElement();
|
||||
RefPtr<dom::HTMLMediaElement> element = owner->GetMediaElement();
|
||||
if (!element) {
|
||||
NS_WARNING("Null element in MediaResource::SetLoadInBackground()");
|
||||
return;
|
||||
|
||||
@@ -444,7 +444,7 @@ nsStandardURL::ValidIPv6orHostname(const char *host, uint32_t length)
|
||||
}
|
||||
|
||||
const char *end = host + length;
|
||||
if (end != net_FindCharInSet(host, end, "\t\n\v\f\r #/:?@[\\]")) {
|
||||
if (end != net_FindCharInSet(host, end, "\t\n\v\f\r ^#/:?@[\\]")) {
|
||||
// We still allow % because it is in the ID of addons.
|
||||
// Any percent encoded ASCII characters that are not allowed in the
|
||||
// hostname are not percent decoded, and will be parsed just fine.
|
||||
|
||||
@@ -7057,9 +7057,9 @@ org.zw
|
||||
|
||||
|
||||
// newGTLDs
|
||||
// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2018-05-08T19:40:37Z
|
||||
// This list is auto-generated, don't edit it manually.
|
||||
|
||||
// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2019-06-14T10:00:50-04:00
|
||||
// This list is auto-generated, don't edit it manually.
|
||||
// aaa : 2015-02-26 American Automobile Association, Inc.
|
||||
aaa
|
||||
|
||||
@@ -7105,7 +7105,7 @@ accountants
|
||||
// aco : 2015-01-08 ACO Severin Ahlmann GmbH & Co. KG
|
||||
aco
|
||||
|
||||
// actor : 2013-12-12 United TLD Holdco Ltd.
|
||||
// actor : 2013-12-12 Dog Beach, LLC
|
||||
actor
|
||||
|
||||
// adac : 2015-07-16 Allgemeiner Deutscher Automobil-Club e.V. (ADAC)
|
||||
@@ -7147,7 +7147,7 @@ aigo
|
||||
// airbus : 2015-07-30 Airbus S.A.S.
|
||||
airbus
|
||||
|
||||
// airforce : 2014-03-06 United TLD Holdco Ltd.
|
||||
// airforce : 2014-03-06 Dog Beach, LLC
|
||||
airforce
|
||||
|
||||
// airtel : 2014-10-24 Bharti Airtel Limited
|
||||
@@ -7231,10 +7231,10 @@ arab
|
||||
// aramco : 2014-11-20 Aramco Services Company
|
||||
aramco
|
||||
|
||||
// archi : 2014-02-06 Afilias plc
|
||||
// archi : 2014-02-06 Afilias Limited
|
||||
archi
|
||||
|
||||
// army : 2014-03-06 United TLD Holdco Ltd.
|
||||
// army : 2014-03-06 Dog Beach, LLC
|
||||
army
|
||||
|
||||
// art : 2016-03-24 UK Creative Ideas Limited
|
||||
@@ -7252,10 +7252,10 @@ associates
|
||||
// athleta : 2015-07-30 The Gap, Inc.
|
||||
athleta
|
||||
|
||||
// attorney : 2014-03-20 United TLD Holdco Ltd.
|
||||
// attorney : 2014-03-20 Dog Beach, LLC
|
||||
attorney
|
||||
|
||||
// auction : 2014-03-20 United TLD Holdco Ltd.
|
||||
// auction : 2014-03-20 Dog Beach, LLC
|
||||
auction
|
||||
|
||||
// audi : 2015-05-21 AUDI Aktiengesellschaft
|
||||
@@ -7291,7 +7291,7 @@ axa
|
||||
// azure : 2014-12-18 Microsoft Corporation
|
||||
azure
|
||||
|
||||
// baby : 2015-04-09 Johnson & Johnson Services, Inc.
|
||||
// baby : 2015-04-09 XYZ.COM LLC
|
||||
baby
|
||||
|
||||
// baidu : 2015-01-08 Baidu, Inc.
|
||||
@@ -7303,7 +7303,7 @@ banamex
|
||||
// bananarepublic : 2015-07-31 The Gap, Inc.
|
||||
bananarepublic
|
||||
|
||||
// band : 2014-06-12 United TLD Holdco Ltd.
|
||||
// band : 2014-06-12 Dog Beach, LLC
|
||||
band
|
||||
|
||||
// bank : 2014-09-25 fTLD Registry Services LLC
|
||||
@@ -7375,7 +7375,7 @@ best
|
||||
// bestbuy : 2015-07-31 BBY Solutions, Inc.
|
||||
bestbuy
|
||||
|
||||
// bet : 2015-05-07 Afilias plc
|
||||
// bet : 2015-05-07 Afilias Limited
|
||||
bet
|
||||
|
||||
// bharti : 2014-01-09 Bharti Enterprises (Holding) Private Limited
|
||||
@@ -7396,10 +7396,10 @@ bing
|
||||
// bingo : 2014-12-04 Binky Moon, LLC
|
||||
bingo
|
||||
|
||||
// bio : 2014-03-06 Afilias plc
|
||||
// bio : 2014-03-06 Afilias Limited
|
||||
bio
|
||||
|
||||
// black : 2014-01-16 Afilias plc
|
||||
// black : 2014-01-16 Afilias Limited
|
||||
black
|
||||
|
||||
// blackfriday : 2014-01-16 Uniregistry, Corp.
|
||||
@@ -7414,7 +7414,7 @@ blog
|
||||
// bloomberg : 2014-07-17 Bloomberg IP Holdings LLC
|
||||
bloomberg
|
||||
|
||||
// blue : 2013-11-07 Afilias plc
|
||||
// blue : 2013-11-07 Afilias Limited
|
||||
blue
|
||||
|
||||
// bms : 2014-10-30 Bristol-Myers Squibb Company
|
||||
@@ -7441,7 +7441,7 @@ bofa
|
||||
// bom : 2014-10-16 Núcleo de Informação e Coordenação do Ponto BR - NIC.br
|
||||
bom
|
||||
|
||||
// bond : 2014-06-05 Bond University Limited
|
||||
// bond : 2014-06-05 ShortDot SA
|
||||
bond
|
||||
|
||||
// boo : 2014-01-30 Charleston Road Registry Inc.
|
||||
@@ -7468,7 +7468,7 @@ bot
|
||||
// boutique : 2013-11-14 Binky Moon, LLC
|
||||
boutique
|
||||
|
||||
// box : 2015-11-12 NS1 Limited
|
||||
// box : 2015-11-12 .BOX INC.
|
||||
box
|
||||
|
||||
// bradesco : 2014-12-18 Banco Bradesco S.A.
|
||||
@@ -7633,7 +7633,7 @@ chanel
|
||||
// channel : 2014-05-08 Charleston Road Registry Inc.
|
||||
channel
|
||||
|
||||
// charity : 2018-04-11 Corn Lake, LLC
|
||||
// charity : 2018-04-11 Binky Moon, LLC
|
||||
charity
|
||||
|
||||
// chase : 2015-04-30 JPMorgan Chase Bank, National Association
|
||||
@@ -7723,7 +7723,7 @@ coffee
|
||||
// college : 2014-01-16 XYZ.COM LLC
|
||||
college
|
||||
|
||||
// cologne : 2014-02-05 punkt.wien GmbH
|
||||
// cologne : 2014-02-05 dotKoeln GmbH
|
||||
cologne
|
||||
|
||||
// comcast : 2015-07-23 Comcast IP Holdings I, LLC
|
||||
@@ -7753,10 +7753,10 @@ condos
|
||||
// construction : 2013-09-16 Binky Moon, LLC
|
||||
construction
|
||||
|
||||
// consulting : 2013-12-05 United TLD Holdco Ltd.
|
||||
// consulting : 2013-12-05 Dog Beach, LLC
|
||||
consulting
|
||||
|
||||
// contact : 2015-01-08 Top Level Spectrum, Inc.
|
||||
// contact : 2015-01-08 Dog Beach, LLC
|
||||
contact
|
||||
|
||||
// contractors : 2013-09-10 Binky Moon, LLC
|
||||
@@ -7786,6 +7786,9 @@ coupons
|
||||
// courses : 2014-12-04 OPEN UNIVERSITIES AUSTRALIA PTY LTD
|
||||
courses
|
||||
|
||||
// cpa : 2019-06-10 American Institute of Certified Public Accountants
|
||||
cpa
|
||||
|
||||
// credit : 2014-03-20 Binky Moon, LLC
|
||||
credit
|
||||
|
||||
@@ -7813,7 +7816,7 @@ cruises
|
||||
// csc : 2014-09-25 Alliance-One Services, Inc.
|
||||
csc
|
||||
|
||||
// cuisinella : 2014-04-03 SALM S.A.S.
|
||||
// cuisinella : 2014-04-03 SCHMIDT GROUPE S.A.S.
|
||||
cuisinella
|
||||
|
||||
// cymru : 2014-05-08 Nominet UK
|
||||
@@ -7828,7 +7831,7 @@ dabur
|
||||
// dad : 2014-01-23 Charleston Road Registry Inc.
|
||||
dad
|
||||
|
||||
// dance : 2013-10-24 United TLD Holdco Ltd.
|
||||
// dance : 2013-10-24 Dog Beach, LLC
|
||||
dance
|
||||
|
||||
// data : 2016-06-02 Dish DBS Corporation
|
||||
@@ -7855,13 +7858,13 @@ dds
|
||||
// deal : 2015-06-25 Amazon Registry Services, Inc.
|
||||
deal
|
||||
|
||||
// dealer : 2014-12-22 Dealer Dot Com, Inc.
|
||||
// dealer : 2014-12-22 Intercap Registry Inc.
|
||||
dealer
|
||||
|
||||
// deals : 2014-05-22 Binky Moon, LLC
|
||||
deals
|
||||
|
||||
// degree : 2014-03-06 United TLD Holdco Ltd.
|
||||
// degree : 2014-03-06 Dog Beach, LLC
|
||||
degree
|
||||
|
||||
// delivery : 2014-09-11 Binky Moon, LLC
|
||||
@@ -7876,13 +7879,13 @@ deloitte
|
||||
// delta : 2015-02-19 Delta Air Lines, Inc.
|
||||
delta
|
||||
|
||||
// democrat : 2013-10-24 United TLD Holdco Ltd.
|
||||
// democrat : 2013-10-24 Dog Beach, LLC
|
||||
democrat
|
||||
|
||||
// dental : 2014-03-20 Binky Moon, LLC
|
||||
dental
|
||||
|
||||
// dentist : 2014-03-20 United TLD Holdco Ltd.
|
||||
// dentist : 2014-03-20 Dog Beach, LLC
|
||||
dentist
|
||||
|
||||
// desi : 2013-11-14 Desi Networks LLC
|
||||
@@ -7975,7 +7978,7 @@ durban
|
||||
// dvag : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG
|
||||
dvag
|
||||
|
||||
// dvr : 2016-05-26 Hughes Satellite Systems Corporation
|
||||
// dvr : 2016-05-26 DISH Technologies L.L.C.
|
||||
dvr
|
||||
|
||||
// earth : 2014-12-04 Interlink Co., Ltd.
|
||||
@@ -8002,7 +8005,7 @@ emerck
|
||||
// energy : 2014-09-11 Binky Moon, LLC
|
||||
energy
|
||||
|
||||
// engineer : 2014-03-06 United TLD Holdco Ltd.
|
||||
// engineer : 2014-03-06 Dog Beach, LLC
|
||||
engineer
|
||||
|
||||
// engineering : 2014-03-06 Binky Moon, LLC
|
||||
@@ -8074,13 +8077,13 @@ fairwinds
|
||||
// faith : 2014-11-20 dot Faith Limited
|
||||
faith
|
||||
|
||||
// family : 2015-04-02 United TLD Holdco Ltd.
|
||||
// family : 2015-04-02 Dog Beach, LLC
|
||||
family
|
||||
|
||||
// fan : 2014-03-06 Asiamix Digital Limited
|
||||
// fan : 2014-03-06 Dog Beach, LLC
|
||||
fan
|
||||
|
||||
// fans : 2014-11-07 Asiamix Digital Limited
|
||||
// fans : 2014-11-07 Fans TLD Limited
|
||||
fans
|
||||
|
||||
// farm : 2013-11-07 Binky Moon, LLC
|
||||
@@ -8185,7 +8188,7 @@ ford
|
||||
// forex : 2014-12-11 Dotforex Registry Limited
|
||||
forex
|
||||
|
||||
// forsale : 2014-05-22 United TLD Holdco Ltd.
|
||||
// forsale : 2014-05-22 Dog Beach, LLC
|
||||
forsale
|
||||
|
||||
// forum : 2015-04-02 Fegistry, LLC
|
||||
@@ -8233,7 +8236,7 @@ fund
|
||||
// furniture : 2014-03-20 Binky Moon, LLC
|
||||
furniture
|
||||
|
||||
// futbol : 2013-09-20 United TLD Holdco Ltd.
|
||||
// futbol : 2013-09-20 Dog Beach, LLC
|
||||
futbol
|
||||
|
||||
// fyi : 2015-04-02 Binky Moon, LLC
|
||||
@@ -8254,7 +8257,7 @@ gallup
|
||||
// game : 2015-05-28 Uniregistry, Corp.
|
||||
game
|
||||
|
||||
// games : 2015-05-28 United TLD Holdco Ltd.
|
||||
// games : 2015-05-28 Dog Beach, LLC
|
||||
games
|
||||
|
||||
// gap : 2015-07-31 The Gap, Inc.
|
||||
@@ -8263,6 +8266,9 @@ gap
|
||||
// garden : 2014-06-26 Minds + Machines Group Limited
|
||||
garden
|
||||
|
||||
// gay : 2019-05-23 Top Level Design, LLC
|
||||
gay
|
||||
|
||||
// gbiz : 2014-07-17 Charleston Road Registry Inc.
|
||||
gbiz
|
||||
|
||||
@@ -8290,7 +8296,7 @@ gift
|
||||
// gifts : 2014-07-03 Binky Moon, LLC
|
||||
gifts
|
||||
|
||||
// gives : 2014-03-06 United TLD Holdco Ltd.
|
||||
// gives : 2014-03-06 Dog Beach, LLC
|
||||
gives
|
||||
|
||||
// giving : 2014-11-13 Giving Limited
|
||||
@@ -8362,7 +8368,7 @@ graphics
|
||||
// gratis : 2014-03-20 Binky Moon, LLC
|
||||
gratis
|
||||
|
||||
// green : 2014-05-08 Afilias plc
|
||||
// green : 2014-05-08 Afilias Limited
|
||||
green
|
||||
|
||||
// gripe : 2014-03-06 Binky Moon, LLC
|
||||
@@ -8401,7 +8407,7 @@ hamburg
|
||||
// hangout : 2014-11-13 Charleston Road Registry Inc.
|
||||
hangout
|
||||
|
||||
// haus : 2013-12-05 United TLD Holdco Ltd.
|
||||
// haus : 2013-12-05 Dog Beach, LLC
|
||||
haus
|
||||
|
||||
// hbo : 2015-07-30 HBO Registry Services, Inc.
|
||||
@@ -8548,10 +8554,10 @@ imdb
|
||||
// immo : 2014-07-10 Binky Moon, LLC
|
||||
immo
|
||||
|
||||
// immobilien : 2013-11-07 United TLD Holdco Ltd.
|
||||
// immobilien : 2013-11-07 Dog Beach, LLC
|
||||
immobilien
|
||||
|
||||
// inc : 2018-03-10 GTLD Limited
|
||||
// inc : 2018-03-10 Intercap Registry Inc.
|
||||
inc
|
||||
|
||||
// industries : 2013-12-05 Binky Moon, LLC
|
||||
@@ -8668,7 +8674,7 @@ juegos
|
||||
// juniper : 2015-07-30 JUNIPER NETWORKS, INC.
|
||||
juniper
|
||||
|
||||
// kaufen : 2013-11-07 United TLD Holdco Ltd.
|
||||
// kaufen : 2013-11-07 Dog Beach, LLC
|
||||
kaufen
|
||||
|
||||
// kddi : 2014-09-12 KDDI CORPORATION
|
||||
@@ -8689,7 +8695,7 @@ kfh
|
||||
// kia : 2015-07-09 KIA MOTORS CORPORATION
|
||||
kia
|
||||
|
||||
// kim : 2013-09-23 Afilias plc
|
||||
// kim : 2013-09-23 Afilias Limited
|
||||
kim
|
||||
|
||||
// kinder : 2014-11-07 Ferrero Trading Lux S.A.
|
||||
@@ -8704,7 +8710,7 @@ kitchen
|
||||
// kiwi : 2013-09-20 DOT KIWI LIMITED
|
||||
kiwi
|
||||
|
||||
// koeln : 2014-01-09 punkt.wien GmbH
|
||||
// koeln : 2014-01-09 dotKoeln GmbH
|
||||
koeln
|
||||
|
||||
// komatsu : 2015-01-08 Komatsu Ltd.
|
||||
@@ -8773,10 +8779,10 @@ latino
|
||||
// latrobe : 2014-06-16 La Trobe University
|
||||
latrobe
|
||||
|
||||
// law : 2015-01-22 Minds + Machines Group Limited
|
||||
// law : 2015-01-22 LW TLD Limited
|
||||
law
|
||||
|
||||
// lawyer : 2014-03-20 United TLD Holdco Ltd.
|
||||
// lawyer : 2014-03-20 Dog Beach, LLC
|
||||
lawyer
|
||||
|
||||
// lds : 2014-03-20 IRI Domain Management, LLC ("Applicant")
|
||||
@@ -8800,7 +8806,7 @@ lego
|
||||
// lexus : 2015-04-23 TOYOTA MOTOR CORPORATION
|
||||
lexus
|
||||
|
||||
// lgbt : 2014-05-08 Afilias plc
|
||||
// lgbt : 2014-05-08 Afilias Limited
|
||||
lgbt
|
||||
|
||||
// liaison : 2014-10-02 Liaison Technologies, Incorporated
|
||||
@@ -8845,7 +8851,7 @@ link
|
||||
// lipsy : 2015-06-25 Lipsy Ltd
|
||||
lipsy
|
||||
|
||||
// live : 2014-12-04 United TLD Holdco Ltd.
|
||||
// live : 2014-12-04 Dog Beach, LLC
|
||||
live
|
||||
|
||||
// living : 2015-07-30 Lifestyle Domain Holdings, Inc.
|
||||
@@ -8854,7 +8860,7 @@ living
|
||||
// lixil : 2015-03-19 LIXIL Group Corporation
|
||||
lixil
|
||||
|
||||
// llc : 2017-12-14 Afilias plc
|
||||
// llc : 2017-12-14 Afilias Limited
|
||||
llc
|
||||
|
||||
// loan : 2014-11-20 dot Loan Limited
|
||||
@@ -8881,7 +8887,7 @@ london
|
||||
// lotte : 2014-11-07 Lotte Holdings Co., Ltd.
|
||||
lotte
|
||||
|
||||
// lotto : 2014-04-10 Afilias plc
|
||||
// lotto : 2014-04-10 Afilias Limited
|
||||
lotto
|
||||
|
||||
// love : 2014-12-22 Merchant Law Group LLP
|
||||
@@ -8938,7 +8944,7 @@ mango
|
||||
// map : 2016-06-09 Charleston Road Registry Inc.
|
||||
map
|
||||
|
||||
// market : 2014-03-06 United TLD Holdco Ltd.
|
||||
// market : 2014-03-06 Dog Beach, LLC
|
||||
market
|
||||
|
||||
// marketing : 2013-11-07 Binky Moon, LLC
|
||||
@@ -8986,7 +8992,7 @@ memorial
|
||||
// men : 2015-02-26 Exclusive Registry Limited
|
||||
men
|
||||
|
||||
// menu : 2013-09-11 Wedding TLD2, LLC
|
||||
// menu : 2013-09-11 Dot Menu Registry, LLC
|
||||
menu
|
||||
|
||||
// merckmsd : 2016-07-14 MSD Registry Holdings, Inc.
|
||||
@@ -9028,7 +9034,7 @@ mobile
|
||||
// mobily : 2014-12-18 GreenTech Consultancy Company W.L.L.
|
||||
mobily
|
||||
|
||||
// moda : 2013-11-07 United TLD Holdco Ltd.
|
||||
// moda : 2013-11-07 Dog Beach, LLC
|
||||
moda
|
||||
|
||||
// moe : 2013-11-13 Interlink Co., Ltd.
|
||||
@@ -9046,7 +9052,7 @@ monash
|
||||
// money : 2014-10-16 Binky Moon, LLC
|
||||
money
|
||||
|
||||
// monster : 2015-09-11 Monster Worldwide, Inc.
|
||||
// monster : 2015-09-11 XYZ.COM LLC
|
||||
monster
|
||||
|
||||
// mopar : 2015-07-30 FCA US LLC.
|
||||
@@ -9055,7 +9061,7 @@ mopar
|
||||
// mormon : 2013-12-05 IRI Domain Management, LLC ("Applicant")
|
||||
mormon
|
||||
|
||||
// mortgage : 2014-03-20 United TLD Holdco Ltd.
|
||||
// mortgage : 2014-03-20 Dog Beach, LLC
|
||||
mortgage
|
||||
|
||||
// moscow : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID)
|
||||
@@ -9103,7 +9109,7 @@ nationwide
|
||||
// natura : 2015-03-12 NATURA COSMÉTICOS S.A.
|
||||
natura
|
||||
|
||||
// navy : 2014-03-06 United TLD Holdco Ltd.
|
||||
// navy : 2014-03-06 Dog Beach, LLC
|
||||
navy
|
||||
|
||||
// nba : 2015-07-31 NBA REGISTRY, LLC
|
||||
@@ -9130,7 +9136,7 @@ new
|
||||
// newholland : 2015-09-03 CNH Industrial N.V.
|
||||
newholland
|
||||
|
||||
// news : 2014-12-18 United TLD Holdco Ltd.
|
||||
// news : 2014-12-18 Dog Beach, LLC
|
||||
news
|
||||
|
||||
// next : 2015-06-18 Next plc
|
||||
@@ -9160,7 +9166,7 @@ nike
|
||||
// nikon : 2015-05-21 NIKON CORPORATION
|
||||
nikon
|
||||
|
||||
// ninja : 2013-11-07 United TLD Holdco Ltd.
|
||||
// ninja : 2013-11-07 Dog Beach, LLC
|
||||
ninja
|
||||
|
||||
// nissan : 2014-03-27 NISSAN MOTOR CO., LTD.
|
||||
@@ -9244,7 +9250,7 @@ online
|
||||
// onyourside : 2015-07-23 Nationwide Mutual Insurance Company
|
||||
onyourside
|
||||
|
||||
// ooo : 2014-01-09 INFIBEAM INCORPORATION LIMITED
|
||||
// ooo : 2014-01-09 INFIBEAM AVENUES LIMITED
|
||||
ooo
|
||||
|
||||
// open : 2015-07-31 American Express Travel Related Services Company, Inc.
|
||||
@@ -9256,7 +9262,7 @@ oracle
|
||||
// orange : 2015-03-12 Orange Brand Services Limited
|
||||
orange
|
||||
|
||||
// organic : 2014-03-27 Afilias plc
|
||||
// organic : 2014-03-27 Afilias Limited
|
||||
organic
|
||||
|
||||
// origins : 2015-10-01 The Estée Lauder Companies Inc.
|
||||
@@ -9271,7 +9277,7 @@ otsuka
|
||||
// ott : 2015-06-04 Dish DBS Corporation
|
||||
ott
|
||||
|
||||
// ovh : 2014-01-16 OVH SAS
|
||||
// ovh : 2014-01-16 MédiaBC
|
||||
ovh
|
||||
|
||||
// page : 2014-12-04 Charleston Road Registry Inc.
|
||||
@@ -9304,7 +9310,7 @@ pay
|
||||
// pccw : 2015-05-14 PCCW Enterprises Limited
|
||||
pccw
|
||||
|
||||
// pet : 2015-05-07 Afilias plc
|
||||
// pet : 2015-05-07 Afilias Limited
|
||||
pet
|
||||
|
||||
// pfizer : 2015-09-11 Pfizer Inc.
|
||||
@@ -9355,7 +9361,7 @@ pin
|
||||
// ping : 2015-06-11 Ping Registry Provider, Inc.
|
||||
ping
|
||||
|
||||
// pink : 2013-10-01 Afilias plc
|
||||
// pink : 2013-10-01 Afilias Limited
|
||||
pink
|
||||
|
||||
// pioneer : 2015-07-16 Pioneer Corporation
|
||||
@@ -9370,7 +9376,7 @@ place
|
||||
// play : 2015-03-05 Charleston Road Registry Inc.
|
||||
play
|
||||
|
||||
// playstation : 2015-07-02 Sony Computer Entertainment Inc.
|
||||
// playstation : 2015-07-02 Sony Interactive Entertainment Inc.
|
||||
playstation
|
||||
|
||||
// plumbing : 2013-09-10 Binky Moon, LLC
|
||||
@@ -9385,7 +9391,7 @@ pnc
|
||||
// pohl : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG
|
||||
pohl
|
||||
|
||||
// poker : 2014-07-03 Afilias plc
|
||||
// poker : 2014-07-03 Afilias Limited
|
||||
poker
|
||||
|
||||
// politie : 2015-08-20 Politie Nederland
|
||||
@@ -9418,7 +9424,7 @@ prof
|
||||
// progressive : 2015-07-23 Progressive Casualty Insurance Company
|
||||
progressive
|
||||
|
||||
// promo : 2014-12-18 Afilias plc
|
||||
// promo : 2014-12-18 Afilias Limited
|
||||
promo
|
||||
|
||||
// properties : 2013-12-05 Binky Moon, LLC
|
||||
@@ -9436,7 +9442,7 @@ pru
|
||||
// prudential : 2015-07-30 Prudential Financial, Inc.
|
||||
prudential
|
||||
|
||||
// pub : 2013-12-12 United TLD Holdco Ltd.
|
||||
// pub : 2013-12-12 Dog Beach, LLC
|
||||
pub
|
||||
|
||||
// pwc : 2015-10-29 PricewaterhouseCoopers LLP
|
||||
@@ -9478,7 +9484,7 @@ realty
|
||||
// recipes : 2013-10-17 Binky Moon, LLC
|
||||
recipes
|
||||
|
||||
// red : 2013-11-07 Afilias plc
|
||||
// red : 2013-11-07 Afilias Limited
|
||||
red
|
||||
|
||||
// redstone : 2014-10-31 Redstone Haute Couture Co., Ltd.
|
||||
@@ -9487,7 +9493,7 @@ redstone
|
||||
// redumbrella : 2015-03-26 Travelers TLD, LLC
|
||||
redumbrella
|
||||
|
||||
// rehab : 2014-03-06 United TLD Holdco Ltd.
|
||||
// rehab : 2014-03-06 Dog Beach, LLC
|
||||
rehab
|
||||
|
||||
// reise : 2014-03-13 Binky Moon, LLC
|
||||
@@ -9517,7 +9523,7 @@ repair
|
||||
// report : 2013-12-05 Binky Moon, LLC
|
||||
report
|
||||
|
||||
// republican : 2014-03-20 United TLD Holdco Ltd.
|
||||
// republican : 2014-03-20 Dog Beach, LLC
|
||||
republican
|
||||
|
||||
// rest : 2013-12-19 Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable
|
||||
@@ -9529,7 +9535,7 @@ restaurant
|
||||
// review : 2014-11-20 dot Review Limited
|
||||
review
|
||||
|
||||
// reviews : 2013-09-13 United TLD Holdco Ltd.
|
||||
// reviews : 2013-09-13 Dog Beach, LLC
|
||||
reviews
|
||||
|
||||
// rexroth : 2015-06-18 Robert Bosch GMBH
|
||||
@@ -9553,7 +9559,7 @@ ril
|
||||
// rio : 2014-02-27 Empresa Municipal de Informática SA - IPLANRIO
|
||||
rio
|
||||
|
||||
// rip : 2014-07-10 United TLD Holdco Ltd.
|
||||
// rip : 2014-07-10 Dog Beach, LLC
|
||||
rip
|
||||
|
||||
// rmit : 2015-11-19 Royal Melbourne Institute of Technology
|
||||
@@ -9562,7 +9568,7 @@ rmit
|
||||
// rocher : 2014-12-18 Ferrero Trading Lux S.A.
|
||||
rocher
|
||||
|
||||
// rocks : 2013-11-14 United TLD Holdco Ltd.
|
||||
// rocks : 2013-11-14 Dog Beach, LLC
|
||||
rocks
|
||||
|
||||
// rodeo : 2013-12-19 Minds + Machines Group Limited
|
||||
@@ -9604,7 +9610,7 @@ safety
|
||||
// sakura : 2014-12-18 SAKURA Internet Inc.
|
||||
sakura
|
||||
|
||||
// sale : 2014-10-16 United TLD Holdco Ltd.
|
||||
// sale : 2014-10-16 Dog Beach, LLC
|
||||
sale
|
||||
|
||||
// salon : 2014-12-11 Binky Moon, LLC
|
||||
@@ -9655,7 +9661,7 @@ scb
|
||||
// schaeffler : 2015-08-06 Schaeffler Technologies AG & Co. KG
|
||||
schaeffler
|
||||
|
||||
// schmidt : 2014-04-03 SALM S.A.S.
|
||||
// schmidt : 2014-04-03 SCHMIDT GROUPE S.A.S.
|
||||
schmidt
|
||||
|
||||
// scholarships : 2014-04-24 Scholarships.com, LLC
|
||||
@@ -9739,7 +9745,7 @@ shell
|
||||
// shia : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.
|
||||
shia
|
||||
|
||||
// shiksha : 2013-11-14 Afilias plc
|
||||
// shiksha : 2013-11-14 Afilias Limited
|
||||
shiksha
|
||||
|
||||
// shoes : 2013-10-02 Binky Moon, LLC
|
||||
@@ -9775,7 +9781,7 @@ singles
|
||||
// site : 2015-01-15 DotSite Inc.
|
||||
site
|
||||
|
||||
// ski : 2015-04-09 Afilias plc
|
||||
// ski : 2015-04-09 Afilias Limited
|
||||
ski
|
||||
|
||||
// skin : 2015-01-15 L'Oréal
|
||||
@@ -9787,7 +9793,7 @@ sky
|
||||
// skype : 2014-12-18 Microsoft Corporation
|
||||
skype
|
||||
|
||||
// sling : 2015-07-30 Hughes Satellite Systems Corporation
|
||||
// sling : 2015-07-30 DISH Technologies L.L.C.
|
||||
sling
|
||||
|
||||
// smart : 2015-07-09 Smart Communications, Inc. (SMART)
|
||||
@@ -9802,13 +9808,13 @@ sncf
|
||||
// soccer : 2015-03-26 Binky Moon, LLC
|
||||
soccer
|
||||
|
||||
// social : 2013-11-07 United TLD Holdco Ltd.
|
||||
// social : 2013-11-07 Dog Beach, LLC
|
||||
social
|
||||
|
||||
// softbank : 2015-07-02 SoftBank Corp.
|
||||
// softbank : 2015-07-02 SoftBank Group Corp.
|
||||
softbank
|
||||
|
||||
// software : 2014-03-20 United TLD Holdco Ltd.
|
||||
// software : 2014-03-20 Dog Beach, LLC
|
||||
software
|
||||
|
||||
// sohu : 2013-12-19 Sohu.com Limited
|
||||
@@ -9883,7 +9889,7 @@ store
|
||||
// stream : 2016-01-08 dot Stream Limited
|
||||
stream
|
||||
|
||||
// studio : 2015-02-11 United TLD Holdco Ltd.
|
||||
// studio : 2015-02-11 Dog Beach, LLC
|
||||
studio
|
||||
|
||||
// study : 2014-12-11 OPEN UNIVERSITIES AUSTRALIA PTY LTD
|
||||
@@ -10147,16 +10153,16 @@ ventures
|
||||
// verisign : 2015-08-13 VeriSign, Inc.
|
||||
verisign
|
||||
|
||||
// versicherung : 2014-03-20 TLD-BOX Registrydienstleistungen GmbH
|
||||
// versicherung : 2014-03-20 tldbox GmbH
|
||||
versicherung
|
||||
|
||||
// vet : 2014-03-06 United TLD Holdco Ltd.
|
||||
// vet : 2014-03-06 Dog Beach, LLC
|
||||
vet
|
||||
|
||||
// viajes : 2013-10-17 Binky Moon, LLC
|
||||
viajes
|
||||
|
||||
// video : 2014-10-16 United TLD Holdco Ltd.
|
||||
// video : 2014-10-16 Dog Beach, LLC
|
||||
video
|
||||
|
||||
// vig : 2015-05-14 VIENNA INSURANCE GROUP AG Wiener Versicherung Gruppe
|
||||
@@ -10381,7 +10387,7 @@ xin
|
||||
// xn--5tzm5g : 2014-12-22 Global Website TLD Asia Limited
|
||||
网站
|
||||
|
||||
// xn--6frz82g : 2013-09-23 Afilias plc
|
||||
// xn--6frz82g : 2013-09-23 Afilias Limited
|
||||
移动
|
||||
|
||||
// xn--6qq986b3xl : 2013-09-13 Tycoon Treasure Limited
|
||||
|
||||
@@ -30,8 +30,8 @@ class CallChannelOnPush final : public nsRunnable {
|
||||
Http2PushedStream *pushStream)
|
||||
: mAssociatedChannel(associatedChannel)
|
||||
, mPushedURI(pushedURI)
|
||||
, mPushedStream(pushStream)
|
||||
{
|
||||
mPushedStreamWrapper = new Http2PushedStreamWrapper(pushStream);
|
||||
}
|
||||
|
||||
NS_IMETHOD Run()
|
||||
@@ -40,21 +40,97 @@ class CallChannelOnPush final : public nsRunnable {
|
||||
RefPtr<nsHttpChannel> channel;
|
||||
CallQueryInterface(mAssociatedChannel, channel.StartAssignment());
|
||||
MOZ_ASSERT(channel);
|
||||
if (channel && NS_SUCCEEDED(channel->OnPush(mPushedURI, mPushedStream))) {
|
||||
if (channel &&
|
||||
NS_SUCCEEDED(channel->OnPush(mPushedURI, mPushedStreamWrapper))) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
LOG3(("Http2PushedStream Orphan %p failed OnPush\n", this));
|
||||
mPushedStream->OnPushFailed();
|
||||
mPushedStreamWrapper->OnPushFailed();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
private:
|
||||
nsCOMPtr<nsIHttpChannelInternal> mAssociatedChannel;
|
||||
const nsCString mPushedURI;
|
||||
Http2PushedStream *mPushedStream;
|
||||
RefPtr<Http2PushedStreamWrapper> mPushedStreamWrapper;
|
||||
};
|
||||
|
||||
// Because WeakPtr isn't thread-safe we must ensure that the object is destroyed
|
||||
// on the socket thread, so any Release() called on a different thread is
|
||||
// dispatched to the socket thread.
|
||||
bool Http2PushedStreamWrapper::DispatchRelease() {
|
||||
if (PR_GetCurrentThread() == gSocketThread) { // OnSocketThread()
|
||||
return false;
|
||||
}
|
||||
|
||||
gSocketTransportService->Dispatch(
|
||||
NS_NewNonOwningRunnableMethod(this,
|
||||
&Http2PushedStreamWrapper::Release),
|
||||
NS_DISPATCH_NORMAL);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
NS_IMPL_ADDREF(Http2PushedStreamWrapper)
|
||||
NS_IMETHODIMP_(MozExternalRefCountType)
|
||||
Http2PushedStreamWrapper::Release() {
|
||||
nsrefcnt count = mRefCnt - 1;
|
||||
if (DispatchRelease()) {
|
||||
// Redispatched to the socket thread.
|
||||
return count;
|
||||
}
|
||||
|
||||
MOZ_ASSERT(0 != mRefCnt, "dup release");
|
||||
count = --mRefCnt;
|
||||
NS_LOG_RELEASE(this, count, "Http2PushedStreamWrapper");
|
||||
|
||||
if (0 == count) {
|
||||
mRefCnt = 1;
|
||||
delete (this);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN(Http2PushedStreamWrapper)
|
||||
NS_INTERFACE_MAP_END
|
||||
|
||||
Http2PushedStreamWrapper::Http2PushedStreamWrapper(
|
||||
Http2PushedStream* aPushStream) {
|
||||
MOZ_ASSERT(PR_GetCurrentThread() == gSocketThread, "not on socket thread");
|
||||
mStream = aPushStream;
|
||||
mRequestString = aPushStream->GetRequestString();
|
||||
}
|
||||
|
||||
Http2PushedStreamWrapper::~Http2PushedStreamWrapper() {
|
||||
MOZ_ASSERT(PR_GetCurrentThread() == gSocketThread, "not on socket thread");
|
||||
}
|
||||
|
||||
Http2PushedStream* Http2PushedStreamWrapper::GetStream() {
|
||||
MOZ_ASSERT(PR_GetCurrentThread() == gSocketThread, "not on socket thread");
|
||||
if (mStream) {
|
||||
Http2Stream* stream = mStream;
|
||||
return static_cast<Http2PushedStream*>(stream);
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void Http2PushedStreamWrapper::OnPushFailed() {
|
||||
if (PR_GetCurrentThread() == gSocketThread) { // OnSocketThread()
|
||||
if (mStream) {
|
||||
Http2Stream* stream = mStream;
|
||||
static_cast<Http2PushedStream*>(stream)->OnPushFailed();
|
||||
}
|
||||
} else {
|
||||
gSocketTransportService->Dispatch(
|
||||
NS_NewRunnableMethod(this,
|
||||
&Http2PushedStreamWrapper::OnPushFailed),
|
||||
NS_DISPATCH_NORMAL);
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////
|
||||
// Http2PushedStream
|
||||
//////////////////////////////////////////
|
||||
|
||||
@@ -121,6 +121,24 @@ private:
|
||||
uint32_t mBufferedHTTP1Consumed;
|
||||
};
|
||||
|
||||
class Http2PushedStreamWrapper : public nsISupports {
|
||||
public:
|
||||
NS_DECL_THREADSAFE_ISUPPORTS
|
||||
bool DispatchRelease();
|
||||
|
||||
explicit Http2PushedStreamWrapper(Http2PushedStream* aPushStream);
|
||||
|
||||
nsCString& GetRequestString() { return mRequestString; }
|
||||
Http2PushedStream* GetStream();
|
||||
void OnPushFailed();
|
||||
|
||||
private:
|
||||
virtual ~Http2PushedStreamWrapper();
|
||||
|
||||
nsCString mRequestString;
|
||||
WeakPtr<Http2Stream> mStream;
|
||||
};
|
||||
|
||||
} // namespace net
|
||||
} // namespace mozilla
|
||||
|
||||
|
||||
@@ -1673,8 +1673,9 @@ Http2Session::RecvPushPromise(Http2Session *self)
|
||||
RefPtr<Http2PushTransactionBuffer> transactionBuffer =
|
||||
new Http2PushTransactionBuffer();
|
||||
transactionBuffer->SetConnection(self);
|
||||
Http2PushedStream *pushedStream =
|
||||
new Http2PushedStream(transactionBuffer, self, associatedStream, promisedID);
|
||||
nsAutoPtr<Http2PushedStream> pushedStream(
|
||||
new Http2PushedStream(transactionBuffer, self, associatedStream, promisedID)
|
||||
);
|
||||
|
||||
rv = pushedStream->ConvertPushHeaders(&self->mDecompressor,
|
||||
self->mDecompressBuffer,
|
||||
@@ -1683,7 +1684,6 @@ Http2Session::RecvPushPromise(Http2Session *self)
|
||||
if (rv == NS_ERROR_NOT_IMPLEMENTED) {
|
||||
LOG3(("Http2Session::PushPromise Semantics not Implemented\n"));
|
||||
self->GenerateRstStream(REFUSED_STREAM_ERROR, promisedID);
|
||||
delete pushedStream;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@@ -1691,7 +1691,6 @@ Http2Session::RecvPushPromise(Http2Session *self)
|
||||
// This means the decompression completed ok, but there was a problem with
|
||||
// the decoded headers. Reset the stream and go away.
|
||||
self->GenerateRstStream(PROTOCOL_ERROR, promisedID);
|
||||
delete pushedStream;
|
||||
return NS_OK;
|
||||
} else if (NS_FAILED(rv)) {
|
||||
// This is fatal to the session.
|
||||
@@ -1699,14 +1698,17 @@ Http2Session::RecvPushPromise(Http2Session *self)
|
||||
return rv;
|
||||
}
|
||||
|
||||
WeakPtr<Http2Stream> pushedWeak = pushedStream.forget();
|
||||
|
||||
// Ownership of the pushed stream is by the transaction hash, just as it
|
||||
// is for a client initiated stream. Errors that aren't fatal to the
|
||||
// whole session must call cleanupStream() after this point in order
|
||||
// to remove the stream from that hash.
|
||||
self->mStreamTransactionHash.Put(transactionBuffer, pushedStream);
|
||||
self->mPushedStreams.AppendElement(pushedStream);
|
||||
self->mStreamTransactionHash.Put(transactionBuffer, pushedWeak);
|
||||
self->mPushedStreams.AppendElement(
|
||||
static_cast<Http2PushedStream*>(pushedWeak.get()));
|
||||
|
||||
if (self->RegisterStreamID(pushedStream, promisedID) == kDeadStreamID) {
|
||||
if (self->RegisterStreamID(pushedWeak, promisedID) == kDeadStreamID) {
|
||||
LOG3(("Http2Session::RecvPushPromise registerstreamid failed\n"));
|
||||
self->mGoAwayReason = INTERNAL_ERROR;
|
||||
return NS_ERROR_FAILURE;
|
||||
@@ -1718,23 +1720,24 @@ Http2Session::RecvPushPromise(Http2Session *self)
|
||||
// Fake the request side of the pushed HTTP transaction. Sets up hash
|
||||
// key and origin
|
||||
uint32_t notUsed;
|
||||
pushedStream->ReadSegments(nullptr, 1, ¬Used);
|
||||
pushedWeak->ReadSegments(nullptr, 1, ¬Used);
|
||||
|
||||
nsAutoCString key;
|
||||
if (!pushedStream->GetHashKey(key)) {
|
||||
if (!static_cast<Http2PushedStream*>(pushedWeak.get())->GetHashKey(key)) {
|
||||
LOG3(("Http2Session::RecvPushPromise one of :authority :scheme :path missing from push\n"));
|
||||
self->CleanupStream(pushedStream, NS_ERROR_FAILURE, PROTOCOL_ERROR);
|
||||
self->CleanupStream(pushedWeak, NS_ERROR_FAILURE, PROTOCOL_ERROR);
|
||||
self->ResetDownstreamState();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// does the pushed origin belong on this connection?
|
||||
RefPtr<nsStandardURL> associatedURL, pushedURL;
|
||||
rv = Http2Stream::MakeOriginURL(associatedStream->Origin(), associatedURL);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
rv = Http2Stream::MakeOriginURL(pushedStream->Origin(), pushedURL);
|
||||
rv = Http2Stream::MakeOriginURL(pushedWeak->Origin(), pushedURL);
|
||||
}
|
||||
LOG3(("Http2Session::RecvPushPromise %p checking %s == %s", self,
|
||||
associatedStream->Origin().get(), pushedStream->Origin().get()));
|
||||
associatedStream->Origin().get(), pushedWeak->Origin().get()));
|
||||
bool match = false;
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
rv = associatedURL->Equals(pushedURL, &match);
|
||||
@@ -1742,36 +1745,38 @@ Http2Session::RecvPushPromise(Http2Session *self)
|
||||
if (NS_FAILED(rv)) {
|
||||
// Fallback to string equality of origins. This won't be guaranteed to be as
|
||||
// liberal as we want it to be, but it will at least be safe
|
||||
match = associatedStream->Origin().Equals(pushedStream->Origin());
|
||||
match = associatedStream->Origin().Equals(pushedWeak->Origin());
|
||||
}
|
||||
if (!match) {
|
||||
LOG3(("Http2Session::RecvPushPromise %p pushed stream mismatched origin "
|
||||
"associated origin %s .. pushed origin %s\n", self,
|
||||
associatedStream->Origin().get(), pushedStream->Origin().get()));
|
||||
self->CleanupStream(pushedStream, NS_ERROR_FAILURE, REFUSED_STREAM_ERROR);
|
||||
associatedStream->Origin().get(), pushedWeak->Origin().get()));
|
||||
self->CleanupStream(pushedWeak, NS_ERROR_FAILURE, REFUSED_STREAM_ERROR);
|
||||
self->ResetDownstreamState();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
if (pushedStream->TryOnPush()) {
|
||||
if (static_cast<Http2PushedStream*>(pushedWeak.get())->TryOnPush()) {
|
||||
LOG3(("Http2Session::RecvPushPromise %p channel implements nsIHttpPushListener "
|
||||
"stream %p will not be placed into session cache.\n", self, pushedStream));
|
||||
"stream %p will not be placed into session cache.\n", self, pushedWeak.get()));
|
||||
} else {
|
||||
LOG3(("Http2Session::RecvPushPromise %p place stream into session cache\n", self));
|
||||
if (!cache->RegisterPushedStreamHttp2(key, pushedStream)) {
|
||||
if (!cache->RegisterPushedStreamHttp2(
|
||||
key, static_cast<Http2PushedStream*>(pushedWeak.get()))) {
|
||||
// This only happens if they've already pushed us this item.
|
||||
LOG3(("Http2Session::RecvPushPromise registerPushedStream Failed\n"));
|
||||
self->CleanupStream(pushedStream, NS_ERROR_FAILURE, INTERNAL_ERROR);
|
||||
self->CleanupStream(pushedWeak, NS_ERROR_FAILURE, INTERNAL_ERROR);
|
||||
self->ResetDownstreamState();
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
|
||||
pushedStream->SetHTTPState(Http2Stream::RESERVED_BY_REMOTE);
|
||||
pushedWeak->SetHTTPState(Http2Stream::RESERVED_BY_REMOTE);
|
||||
static_assert(Http2Stream::kWorstPriority >= 0,
|
||||
"kWorstPriority out of range");
|
||||
uint8_t priorityWeight = (nsISupportsPriority::PRIORITY_LOWEST + 1) -
|
||||
(Http2Stream::kWorstPriority - Http2Stream::kNormalPriority);
|
||||
pushedStream->SetPriority(Http2Stream::kWorstPriority);
|
||||
pushedWeak->SetPriority(Http2Stream::kWorstPriority);
|
||||
self->GeneratePriority(promisedID, priorityWeight);
|
||||
self->ResetDownstreamState();
|
||||
return NS_OK;
|
||||
|
||||
@@ -460,12 +460,14 @@ Http2Stream::ParseHttpRequestHeaders(const char *buf,
|
||||
schedulingContext->GetSpdyPushCache(&cache);
|
||||
}
|
||||
|
||||
RefPtr<Http2PushedStreamWrapper> pushedStreamWrapper;
|
||||
Http2PushedStream *pushedStream = nullptr;
|
||||
|
||||
// If a push stream is attached to the transaction via onPush, match only with that
|
||||
// one. This occurs when a push was made with in conjunction with a nsIHttpPushListener
|
||||
nsHttpTransaction *trans = mTransaction->QueryHttpTransaction();
|
||||
if (trans && (pushedStream = trans->TakePushedStream())) {
|
||||
if (trans && (pushedStreamWrapper = trans->TakePushedStream()) &&
|
||||
(pushedStream = pushedStreamWrapper->GetStream())) {
|
||||
if (pushedStream->mSession == mSession) {
|
||||
LOG3(("Pushed Stream match based on OnPush correlation %p", pushedStream));
|
||||
} else {
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "mozilla/UniquePtr.h"
|
||||
#include "nsAHttpTransaction.h"
|
||||
#include "nsISupportsPriority.h"
|
||||
#include "mozilla/WeakPtr.h"
|
||||
|
||||
class nsStandardURL;
|
||||
|
||||
@@ -25,8 +26,10 @@ class Http2Decompressor;
|
||||
class Http2Stream
|
||||
: public nsAHttpSegmentReader
|
||||
, public nsAHttpSegmentWriter
|
||||
, public SupportsWeakPtr<Http2Stream>
|
||||
{
|
||||
public:
|
||||
MOZ_DECLARE_WEAKREFERENCE_TYPENAME(Http2Stream)
|
||||
NS_DECL_NSAHTTPSEGMENTREADER
|
||||
NS_DECL_NSAHTTPSEGMENTWRITER
|
||||
|
||||
|
||||
@@ -553,7 +553,14 @@ void
|
||||
HttpChannelChild::DoOnStartRequest(nsIRequest* aRequest, nsISupports* aContext)
|
||||
{
|
||||
LOG(("HttpChannelChild::DoOnStartRequest [this=%p]\n", this));
|
||||
nsresult rv = mListener->OnStartRequest(aRequest, aContext);
|
||||
nsresult rv;
|
||||
if (MOZ_LIKELY(mListener)) {
|
||||
nsCOMPtr<nsIStreamListener> listener(mListener);
|
||||
rv = listener->OnStartRequest(aRequest, aContext);
|
||||
} else {
|
||||
rv = NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
Cancel(rv);
|
||||
return;
|
||||
@@ -817,9 +824,12 @@ HttpChannelChild::DoOnDataAvailable(nsIRequest* aRequest, nsISupports* aContext,
|
||||
if (mCanceled)
|
||||
return;
|
||||
|
||||
nsresult rv = mListener->OnDataAvailable(aRequest, aContext, aStream, offset, count);
|
||||
if (NS_FAILED(rv)) {
|
||||
Cancel(rv);
|
||||
if (MOZ_LIKELY(mListener)) {
|
||||
nsCOMPtr<nsIStreamListener> listener(mListener);
|
||||
nsresult rv = listener->OnDataAvailable(aRequest, aContext, aStream, offset, count);
|
||||
if (NS_FAILED(rv)) {
|
||||
Cancel(rv);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -982,7 +992,10 @@ HttpChannelChild::DoOnStopRequest(nsIRequest* aRequest, nsresult aChannelStatus,
|
||||
nsChannelClassifier::SetBlockedTrackingContent(this);
|
||||
}
|
||||
|
||||
mListener->OnStopRequest(aRequest, aContext, mStatus);
|
||||
if (MOZ_LIKELY(mListener)) {
|
||||
nsCOMPtr<nsIStreamListener> listener(mListener);
|
||||
listener->OnStopRequest(aRequest, aContext, mStatus);
|
||||
}
|
||||
|
||||
mListener = 0;
|
||||
mListenerContext = 0;
|
||||
|
||||
@@ -6005,7 +6005,8 @@ nsHttpChannel::OnStopRequest(nsIRequest *request, nsISupports *ctxt, nsresult st
|
||||
if (mListener) {
|
||||
MOZ_ASSERT(!mOnStartRequestCalled,
|
||||
"We should not call OnStartRequest twice.");
|
||||
mListener->OnStartRequest(this, mListenerContext);
|
||||
nsCOMPtr<nsIStreamListener> listener(mListener);
|
||||
listener->OnStartRequest(this, mListenerContext);
|
||||
mOnStartRequestCalled = true;
|
||||
} else {
|
||||
NS_WARNING("OnStartRequest skipped because of null listener");
|
||||
@@ -7066,7 +7067,7 @@ nsHttpChannel::AwaitingCacheCallbacks()
|
||||
}
|
||||
|
||||
void
|
||||
nsHttpChannel::SetPushedStream(Http2PushedStream *stream)
|
||||
nsHttpChannel::SetPushedStream(Http2PushedStreamWrapper *stream)
|
||||
{
|
||||
MOZ_ASSERT(stream);
|
||||
MOZ_ASSERT(!mPushedStream);
|
||||
@@ -7074,7 +7075,8 @@ nsHttpChannel::SetPushedStream(Http2PushedStream *stream)
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsHttpChannel::OnPush(const nsACString &url, Http2PushedStream *pushedStream)
|
||||
nsHttpChannel::OnPush(const nsACString &url,
|
||||
Http2PushedStreamWrapper *pushedStream)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
LOG(("nsHttpChannel::OnPush [this=%p]\n", this));
|
||||
|
||||
@@ -120,7 +120,8 @@ public:
|
||||
uint32_t aProxyResolveFlags,
|
||||
nsIURI *aProxyURI) override;
|
||||
|
||||
nsresult OnPush(const nsACString &uri, Http2PushedStream *pushedStream);
|
||||
nsresult OnPush(const nsACString &uri,
|
||||
Http2PushedStreamWrapper *pushedStream);
|
||||
|
||||
static bool IsRedirectStatus(uint32_t status);
|
||||
|
||||
@@ -411,7 +412,7 @@ private:
|
||||
nsresult OpenCacheInputStream(nsICacheEntry* cacheEntry, bool startBuffering,
|
||||
bool checkingAppCacheEntry);
|
||||
|
||||
void SetPushedStream(Http2PushedStream *stream);
|
||||
void SetPushedStream(Http2PushedStreamWrapper *stream);
|
||||
|
||||
void MaybeWarnAboutAppCache();
|
||||
|
||||
@@ -522,7 +523,7 @@ private:
|
||||
// Needed for accurate DNS timing
|
||||
RefPtr<nsDNSPrefetch> mDNSPrefetch;
|
||||
|
||||
Http2PushedStream *mPushedStream;
|
||||
RefPtr<Http2PushedStreamWrapper> mPushedStream;
|
||||
// True if the channel's principal was found on a phishing, malware, or
|
||||
// tracking (if tracking protection is enabled) blocklist
|
||||
bool mLocalBlocklist;
|
||||
|
||||
@@ -375,8 +375,12 @@ nsHttpConnectionMgr::VerifyTraffic()
|
||||
nsresult
|
||||
nsHttpConnectionMgr::DoShiftReloadConnectionCleanup(nsHttpConnectionInfo *aCI)
|
||||
{
|
||||
RefPtr<nsHttpConnectionInfo> ci;
|
||||
if (aCI) {
|
||||
ci = aCI->Clone();
|
||||
}
|
||||
return PostEvent(&nsHttpConnectionMgr::OnMsgDoShiftReloadConnectionCleanup,
|
||||
0, aCI);
|
||||
0, ci);
|
||||
}
|
||||
|
||||
class SpeculativeConnectArgs : public ARefBase
|
||||
@@ -505,9 +509,13 @@ nsHttpConnectionMgr::UpdateParam(nsParamName name, uint16_t value)
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsHttpConnectionMgr::ProcessPendingQ(nsHttpConnectionInfo *ci)
|
||||
nsHttpConnectionMgr::ProcessPendingQ(nsHttpConnectionInfo *aCI)
|
||||
{
|
||||
LOG(("nsHttpConnectionMgr::ProcessPendingQ [ci=%s]\n", ci->HashKey().get()));
|
||||
LOG(("nsHttpConnectionMgr::ProcessPendingQ [ci=%s]\n", aCI->HashKey().get()));
|
||||
RefPtr<nsHttpConnectionInfo> ci;
|
||||
if (aCI) {
|
||||
ci = aCI->Clone();
|
||||
}
|
||||
return PostEvent(&nsHttpConnectionMgr::OnMsgProcessPendingQ, 0, ci);
|
||||
}
|
||||
|
||||
@@ -2052,11 +2060,15 @@ nsHttpConnectionMgr::ProcessNewTransaction(nsHttpTransaction *trans)
|
||||
|
||||
trans->SetPendingTime();
|
||||
|
||||
Http2PushedStream *pushedStream = trans->GetPushedStream();
|
||||
if (pushedStream) {
|
||||
return pushedStream->Session()->
|
||||
AddStream(trans, trans->Priority(), false, nullptr) ?
|
||||
NS_OK : NS_ERROR_UNEXPECTED;
|
||||
RefPtr<Http2PushedStreamWrapper> pushedStreamWrapper =
|
||||
trans->GetPushedStream();
|
||||
if (pushedStreamWrapper) {
|
||||
Http2PushedStream* pushedStream = pushedStreamWrapper->GetStream();
|
||||
if (pushedStream) {
|
||||
return pushedStream->Session()->
|
||||
AddStream(trans, trans->Priority(), false, nullptr) ?
|
||||
NS_OK : NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
}
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
@@ -2220,7 +2220,7 @@ nsHttpHandler::SpeculativeConnectInternal(nsIURI *aURI,
|
||||
nsAutoCString username;
|
||||
aURI->GetUsername(username);
|
||||
|
||||
nsHttpConnectionInfo *ci =
|
||||
RefPtr<nsHttpConnectionInfo> ci =
|
||||
new nsHttpConnectionInfo(host, port, EmptyCString(), username, nullptr, usingSSL);
|
||||
ci->SetAnonymous(anonymous);
|
||||
|
||||
|
||||
@@ -233,7 +233,8 @@ public:
|
||||
uint32_t caps = 0)
|
||||
{
|
||||
TickleWifi(callbacks);
|
||||
return mConnMgr->SpeculativeConnect(ci, callbacks, caps);
|
||||
RefPtr<nsHttpConnectionInfo> clone = ci->Clone();
|
||||
return mConnMgr->SpeculativeConnect(clone, callbacks, caps);
|
||||
}
|
||||
|
||||
// Alternate Services Maps are main thread only
|
||||
|
||||
@@ -134,14 +134,16 @@ public:
|
||||
|
||||
nsHttpTransaction *QueryHttpTransaction() override { return this; }
|
||||
|
||||
Http2PushedStream *GetPushedStream() { return mPushedStream; }
|
||||
Http2PushedStream *TakePushedStream()
|
||||
{
|
||||
Http2PushedStream *r = mPushedStream;
|
||||
mPushedStream = nullptr;
|
||||
return r;
|
||||
already_AddRefed<Http2PushedStreamWrapper> GetPushedStream() {
|
||||
//return do_AddRef(mPushedStream); // XXX: add this support to RefPtr.h
|
||||
RefPtr<Http2PushedStreamWrapper> ref(mPushedStream);
|
||||
return ref.forget();
|
||||
}
|
||||
void SetPushedStream(Http2PushedStream *push) { mPushedStream = push; }
|
||||
already_AddRefed<Http2PushedStreamWrapper> TakePushedStream() {
|
||||
return mPushedStream.forget();
|
||||
}
|
||||
|
||||
void SetPushedStream(Http2PushedStreamWrapper* push) { mPushedStream = push; }
|
||||
uint32_t InitialRwin() const { return mInitialRwin; };
|
||||
|
||||
// Locked methods to get and set timing info
|
||||
@@ -255,7 +257,7 @@ private:
|
||||
// so far been skipped.
|
||||
uint32_t mInvalidResponseBytesRead;
|
||||
|
||||
Http2PushedStream *mPushedStream;
|
||||
RefPtr<Http2PushedStreamWrapper> mPushedStream;
|
||||
uint32_t mInitialRwin;
|
||||
|
||||
nsHttpChunkedDecoder *mChunkedDecoder;
|
||||
|
||||
@@ -3782,12 +3782,9 @@ public class Tokenizer implements Locator {
|
||||
tokenHandler.characters(
|
||||
Tokenizer.LT_SOLIDUS, 0, 2);
|
||||
emitStrBuf();
|
||||
if (c == '\u0000') {
|
||||
emitReplacementCharacter(buf, pos);
|
||||
} else {
|
||||
cstart = pos; // don't drop the
|
||||
// character
|
||||
}
|
||||
cstart = pos; // don't drop the
|
||||
// character
|
||||
reconsume = true;
|
||||
state = transition(state, returnState, reconsume, pos);
|
||||
continue stateloop;
|
||||
}
|
||||
|
||||
@@ -2048,11 +2048,8 @@ nsHtml5Tokenizer::stateLoop(int32_t state, char16_t c, int32_t pos, char16_t* bu
|
||||
default: {
|
||||
tokenHandler->characters(nsHtml5Tokenizer::LT_SOLIDUS, 0, 2);
|
||||
emitStrBuf();
|
||||
if (c == '\0') {
|
||||
emitReplacementCharacter(buf, pos);
|
||||
} else {
|
||||
cstart = pos;
|
||||
}
|
||||
cstart = pos;
|
||||
reconsume = true;
|
||||
state = P::transition(mViewSource, returnState, reconsume, pos);
|
||||
NS_HTML5_CONTINUE(stateloop);
|
||||
}
|
||||
|
||||
@@ -1154,4 +1154,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
|
||||
|
||||
static const int32_t kUnknownId = -1;
|
||||
|
||||
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1568896814931000);
|
||||
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1570106406624000);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user