зеркало из https://github.com/mozilla/gecko-dev.git
Merge mozilla-central to inbound a=merge on a CLOSED TREE
This commit is contained in:
Коммит
a9637188f3
|
@ -159,10 +159,10 @@ networkMenu.summary.tooltip.domContentLoaded=Time when “DOMContentLoad” even
|
|||
# what the load label displays
|
||||
networkMenu.summary.tooltip.load=Time when “load” event occurred
|
||||
|
||||
# LOCALIZATION NOTE (networkMenu.summary.requestsCount): This label is displayed
|
||||
# LOCALIZATION NOTE (networkMenu.summary.requestsCount2): This label is displayed
|
||||
# in the network table footer providing the number of requests
|
||||
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
|
||||
networkMenu.summary.requestsCount=One request;%S requests
|
||||
networkMenu.summary.requestsCount2=One request;#1 requests
|
||||
|
||||
# LOCALIZATION NOTE (networkMenu.summary.requestsCountEmpty): This label is displayed
|
||||
# in the network table footer when there are no requests
|
||||
|
|
|
@ -38,9 +38,8 @@ function StatusBar({ summary, openStatistics, timingMarkers }) {
|
|||
} = timingMarkers;
|
||||
|
||||
let countText = count === 0 ? REQUESTS_COUNT_EMPTY :
|
||||
PluralForm.get(
|
||||
count, L10N.getFormatStrWithNumbers("networkMenu.summary.requestsCount", count)
|
||||
);
|
||||
PluralForm.get(count,
|
||||
L10N.getStr("networkMenu.summary.requestsCount2")).replace("#1", count);
|
||||
let transferText = L10N.getFormatStrWithNumbers("networkMenu.summary.transferred",
|
||||
getFormattedSize(contentSize), getFormattedSize(transferredSize));
|
||||
let finishText = L10N.getFormatStrWithNumbers("networkMenu.summary.finish",
|
||||
|
|
|
@ -58,8 +58,8 @@ add_task(function* () {
|
|||
.textContent;
|
||||
info("Current summary count: " + valueCount);
|
||||
let expectedCount = PluralForm.get(requestsSummary.count,
|
||||
L10N.getFormatStrWithNumbers("networkMenu.summary.requestsCount",
|
||||
requestsSummary.count));
|
||||
L10N.getStr("networkMenu.summary.requestsCount2"))
|
||||
.replace("#1", requestsSummary.count);
|
||||
|
||||
if (!totalRequestsCount || !requestsSummary.count) {
|
||||
is(valueCount, L10N.getStr("networkMenu.summary.requestsCountEmpty"),
|
||||
|
|
|
@ -1274,7 +1274,7 @@ class RTCPeerConnection {
|
|||
// the local offset, likewise store it for reuse.
|
||||
if (cache.tsNowInRtpSourceTime !== undefined) {
|
||||
cache.tsNowInRtpSourceTime = this._impl.getNowInRtpSourceReferenceTime();
|
||||
cache.jsTimestamp = new Date().getTime();
|
||||
cache.jsTimestamp = this._win.performance.now() + this._win.performance.timeOrigin;
|
||||
cache.timestampOffset = cache.jsTimestamp - cache.tsNowInRtpSourceTime;
|
||||
}
|
||||
let id = receiver.track.id;
|
||||
|
|
|
@ -41,8 +41,10 @@
|
|||
`Synchronization source audio level < 128. (${source.audioLevel})`);
|
||||
ok(source.timestamp,
|
||||
`Synchronization source has timestamp (${source.timestamp})`);
|
||||
ok(Number.isInteger(source.timestamp),
|
||||
`Synchronization source timestamp is int (${source.timestamp})`);
|
||||
ok(window.performance.now() + window.performance.timeOrigin -
|
||||
source.timestamp < 2500, // This large value is used because sometimes
|
||||
// the testing hardware is _very_ slow
|
||||
`Synchronization source timestamp is close to now`);
|
||||
is(source.voiceActivityFlag, undefined,
|
||||
"Synchronization source unsupported voiceActivity is undefined");
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ NS_IMPL_ISUPPORTS(WebAuthnManager, nsIDOMEventListener);
|
|||
|
||||
static nsresult
|
||||
AssembleClientData(const nsAString& aOrigin, const CryptoBuffer& aChallenge,
|
||||
/* out */ nsACString& aJsonOut)
|
||||
const nsAString& aType, /* out */ nsACString& aJsonOut)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
|
||||
|
@ -61,6 +61,7 @@ AssembleClientData(const nsAString& aOrigin, const CryptoBuffer& aChallenge,
|
|||
}
|
||||
|
||||
CollectedClientData clientDataObject;
|
||||
clientDataObject.mType.Assign(aType);
|
||||
clientDataObject.mChallenge.Assign(challengeBase64);
|
||||
clientDataObject.mOrigin.Assign(aOrigin);
|
||||
clientDataObject.mHashAlgorithm.AssignLiteral(u"SHA-256");
|
||||
|
@ -343,7 +344,8 @@ WebAuthnManager::MakeCredential(const MakePublicKeyCredentialOptions& aOptions,
|
|||
}
|
||||
|
||||
nsAutoCString clientDataJSON;
|
||||
srv = AssembleClientData(origin, challenge, clientDataJSON);
|
||||
srv = AssembleClientData(origin, challenge,
|
||||
NS_LITERAL_STRING("webauthn.create"), clientDataJSON);
|
||||
if (NS_WARN_IF(NS_FAILED(srv))) {
|
||||
promise->MaybeReject(NS_ERROR_DOM_SECURITY_ERR);
|
||||
return promise.forget();
|
||||
|
@ -518,7 +520,8 @@ WebAuthnManager::GetAssertion(const PublicKeyCredentialRequestOptions& aOptions,
|
|||
}
|
||||
|
||||
nsAutoCString clientDataJSON;
|
||||
srv = AssembleClientData(origin, challenge, clientDataJSON);
|
||||
srv = AssembleClientData(origin, challenge, NS_LITERAL_STRING("webauthn.get"),
|
||||
clientDataJSON);
|
||||
if (NS_WARN_IF(NS_FAILED(srv))) {
|
||||
promise->MaybeReject(NS_ERROR_DOM_SECURITY_ERR);
|
||||
return promise.forget();
|
||||
|
|
|
@ -65,6 +65,7 @@ function() {
|
|||
is(clientData.challenge, bytesToBase64UrlSafe(gCredentialChallenge), "Challenge is correct");
|
||||
is(clientData.origin, window.location.origin, "Origin is correct");
|
||||
is(clientData.hashAlgorithm, "SHA-256", "Hash algorithm is correct");
|
||||
is(clientData.type, "webauthn.create", "Type is correct");
|
||||
|
||||
return webAuthnDecodeCBORAttestation(aCredInfo.response.attestationObject)
|
||||
.then(function(aAttestationObj) {
|
||||
|
@ -119,6 +120,7 @@ function() {
|
|||
is(clientData.challenge, bytesToBase64UrlSafe(gAssertionChallenge), "Challenge is correct");
|
||||
is(clientData.origin, window.location.origin, "Origin is correct");
|
||||
is(clientData.hashAlgorithm, "SHA-256", "Hash algorithm is correct");
|
||||
is(clientData.type, "webauthn.get", "Type is correct");
|
||||
|
||||
return webAuthnDecodeAuthDataArray(aAssertion.response.authenticatorData)
|
||||
.then(function(aAttestation) {
|
||||
|
|
|
@ -109,6 +109,7 @@ dictionary PublicKeyCredentialRequestOptions {
|
|||
typedef record<DOMString, any> AuthenticationExtensions;
|
||||
|
||||
dictionary CollectedClientData {
|
||||
required DOMString type;
|
||||
required DOMString challenge;
|
||||
required DOMString origin;
|
||||
required DOMString hashAlgorithm;
|
||||
|
|
|
@ -32,7 +32,7 @@ class FreeBSDBootstrapper(BaseBootstrapper):
|
|||
'gconf2',
|
||||
'gtk2',
|
||||
'gtk3',
|
||||
'llvm40',
|
||||
'mesa-dri', # depends on llvm*
|
||||
'pulseaudio',
|
||||
'v4l_compat',
|
||||
'yasm',
|
||||
|
|
|
@ -1161,4 +1161,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
|
|||
|
||||
static const int32_t kUnknownId = -1;
|
||||
|
||||
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1525462374072000);
|
||||
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1525547530097000);
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -8,8 +8,9 @@
|
|||
/*****************************************************************************/
|
||||
|
||||
#include <stdint.h>
|
||||
const PRTime gPreloadListExpirationTime = INT64_C(1527881562050000);
|
||||
const PRTime gPreloadListExpirationTime = INT64_C(1527966717315000);
|
||||
%%
|
||||
0-1.party, 1
|
||||
0.me.uk, 1
|
||||
0005pay.com, 1
|
||||
00100010.net, 1
|
||||
|
@ -254,7 +255,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1527881562050000);
|
|||
247healthshop.com, 1
|
||||
247medplan.com, 1
|
||||
24hourscienceprojects.com, 1
|
||||
24hrs.shopping, 1
|
||||
24ip.com, 1
|
||||
24ip.de, 1
|
||||
24ip.fr, 1
|
||||
|
@ -348,7 +348,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1527881562050000);
|
|||
3hl0.net, 1
|
||||
3james.com, 1
|
||||
3logic.ru, 1
|
||||
3mbo.de, 1
|
||||
3phase.pw, 1
|
||||
3plusdesign.gr, 1
|
||||
3queens.cz, 1
|
||||
|
@ -386,7 +385,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1527881562050000);
|
|||
4500.co.il, 1
|
||||
47tech.com, 1
|
||||
491mhz.net, 1
|
||||
49889.com, 1
|
||||
49948522.com, 1
|
||||
49dollaridahoregisteredagent.com, 1
|
||||
4baby.com.br, 1
|
||||
|
@ -1412,7 +1410,6 @@ alinasmusicstudio.com, 1
|
|||
alinode.com, 1
|
||||
alisonisrealestate.com, 1
|
||||
alisonlitchfield.com, 1
|
||||
alistairstowing.com, 1
|
||||
alisync.com, 1
|
||||
aliwebstore.com, 1
|
||||
alix-board.de, 1
|
||||
|
@ -2071,7 +2068,6 @@ app-at.work, 1
|
|||
app.recurly.com, 1
|
||||
app.simpletax.ca, 1
|
||||
app.yinxiang.com, 0
|
||||
apparels24.com, 1
|
||||
appartement-andrea.at, 1
|
||||
appartement-evolene.net, 1
|
||||
appartementhaus-badria.de, 1
|
||||
|
@ -2655,7 +2651,6 @@ aussieservicedown.com, 1
|
|||
austincardiac.com, 1
|
||||
austinheap.com, 1
|
||||
austinmobilemechanics.net, 1
|
||||
austinstore.com.br, 1
|
||||
austinsutphin.com, 1
|
||||
austinuniversityhouse.com, 1
|
||||
australian.dating, 1
|
||||
|
@ -2760,6 +2755,7 @@ avid.blue, 1
|
|||
avietech.com, 1
|
||||
aviv.nyc, 1
|
||||
avmemo.com, 1
|
||||
avmo.pw, 1
|
||||
avmoo.com, 1
|
||||
avnet.ws, 1
|
||||
avocode.com, 1
|
||||
|
@ -2767,6 +2763,7 @@ avonlearningcampus.com, 1
|
|||
avotoma.com, 1
|
||||
avova.de, 1
|
||||
avpres.net, 1
|
||||
avso.pw, 1
|
||||
avsox.com, 1
|
||||
avspot.net, 1
|
||||
avticket.ru, 0
|
||||
|
@ -2775,6 +2772,7 @@ avtogara-isperih.com, 1
|
|||
avtosept.by, 1
|
||||
avtovokzaly.ru, 1
|
||||
avvcorda.com, 1
|
||||
avxo.pw, 1
|
||||
awan.tech, 1
|
||||
awaremi-tai.com, 1
|
||||
awaro.net, 1
|
||||
|
@ -3118,7 +3116,6 @@ bankersonline.com, 1
|
|||
bankfreeoffers.com, 1
|
||||
bankin.com, 1
|
||||
bankinter.pt, 1
|
||||
banknet.gov, 1
|
||||
bankofdenton.com, 1
|
||||
bankofrealty.review, 1
|
||||
banksiaparkcottages.com.au, 1
|
||||
|
@ -3229,6 +3226,7 @@ batipresta.ch, 1
|
|||
batistareisfloresonline.com.br, 1
|
||||
batlab.ch, 1
|
||||
batolis.com, 1
|
||||
batonger.com, 1
|
||||
batook.org, 1
|
||||
batschu.de, 1
|
||||
batten.eu.org, 1
|
||||
|
@ -3615,6 +3613,7 @@ bestessaycheap.com, 1
|
|||
bestessayhelp.com, 1
|
||||
bestfitnesswatchreview.info, 1
|
||||
bestgiftever.ca, 1
|
||||
bestgifts4you.com, 1
|
||||
besthotsales.com, 1
|
||||
bestinductioncooktop.us, 1
|
||||
bestlashesandbrows.com, 1
|
||||
|
@ -3839,6 +3838,7 @@ billy.pictures, 1
|
|||
billyoh.com, 1
|
||||
billysbouncycastlehire.co.uk, 1
|
||||
bilsho.com, 1
|
||||
biltullen.com, 1
|
||||
bimmerlabs.com, 1
|
||||
bin95.com, 1
|
||||
bina.az, 1
|
||||
|
@ -3984,6 +3984,7 @@ bitmessage.ch, 1
|
|||
bitmex.com, 1
|
||||
bitminter.com, 1
|
||||
bitmoe.com, 1
|
||||
bitmon.net, 1
|
||||
bitok.com, 1
|
||||
bitplay.space, 1
|
||||
bitpod.de, 1
|
||||
|
@ -4881,6 +4882,7 @@ btcgo.nl, 1
|
|||
btcontract.com, 1
|
||||
btcpop.co, 1
|
||||
btcycle.org, 1
|
||||
btio.pw, 1
|
||||
btku.org, 1
|
||||
btnissanparts.com, 1
|
||||
btorrent.xyz, 1
|
||||
|
@ -4914,7 +4916,6 @@ budgetalk.com, 1
|
|||
budgetcastlehire.co.uk, 1
|
||||
budgetenergievriendenvoordeel.nl, 1
|
||||
budgetlob.gov, 1
|
||||
budgetlovers.nl, 1
|
||||
budgiesballoons.com, 1
|
||||
budntod.com, 1
|
||||
budolfs.de, 1
|
||||
|
@ -5012,7 +5013,6 @@ bushcraftfriends.com, 1
|
|||
busindre.com, 1
|
||||
business-garden.com, 1
|
||||
business.facebook.com, 0
|
||||
businessadviceperth.com.au, 1
|
||||
businessamongus.com, 1
|
||||
businesscentermarin.ch, 1
|
||||
businessesdirectory.eu, 1
|
||||
|
@ -5449,6 +5449,7 @@ carringtonrealtygroup.com, 1
|
|||
carson-aviation-adventures.com, 1
|
||||
carsten.pw, 1
|
||||
cartadeviajes.cl, 1
|
||||
cartadeviajes.co, 1
|
||||
cartadeviajes.com, 1
|
||||
cartadeviajes.com.ar, 1
|
||||
cartadeviajes.com.ve, 1
|
||||
|
@ -5793,6 +5794,7 @@ channelcards.com, 1
|
|||
channellife.asia, 1
|
||||
channellife.co.nz, 1
|
||||
channellife.com.au, 1
|
||||
channyc.com, 1
|
||||
chanoyu-gakkai.jp, 1
|
||||
chantalguggenbuhl.ch, 1
|
||||
chanz.com, 1
|
||||
|
@ -6216,7 +6218,7 @@ cirugiasplasticas.com.mx, 1
|
|||
cirujanooral.com, 1
|
||||
cirurgicagervasio.com.br, 1
|
||||
cirurgicalucena.com.br, 1
|
||||
ciscodude.net, 0
|
||||
ciscodude.net, 1
|
||||
cisoaid.com, 1
|
||||
ciss.ltd, 1
|
||||
cisy.me, 1
|
||||
|
@ -7650,7 +7652,6 @@ damienpontifex.com, 1
|
|||
daminiphysio.ca, 1
|
||||
damip.net, 1
|
||||
dammekens.be, 1
|
||||
damngoodpepper.com, 0
|
||||
dan-informacijske-varnosti.si, 1
|
||||
dan.me.uk, 1
|
||||
dan.org.nz, 1
|
||||
|
@ -7943,6 +7944,7 @@ ddel.de, 1
|
|||
dden.ca, 0
|
||||
dden.website, 1
|
||||
dden.xyz, 1
|
||||
ddepot.us, 1
|
||||
ddfreedish.site, 0
|
||||
ddhosted.com, 1
|
||||
ddmeportal.com, 1
|
||||
|
@ -8117,7 +8119,6 @@ delphine.dance, 1
|
|||
delta-data.ch, 1
|
||||
delta-smart.ch, 1
|
||||
delta.ru, 1
|
||||
delta23.de, 1
|
||||
deltaacademy.org, 1
|
||||
deltadata.ch, 1
|
||||
deltaonlineguards.com, 1
|
||||
|
@ -8508,7 +8509,6 @@ digitalehandtekeningen.nl, 1
|
|||
digitaleoverheid.nl, 1
|
||||
digitalewelten.de, 1
|
||||
digitalfishfun.com, 1
|
||||
digitalgov.gov, 1
|
||||
digitalhurricane.io, 1
|
||||
digitalimpostor.co.uk, 1
|
||||
digitalmarketingindallas.com, 1
|
||||
|
@ -9257,7 +9257,6 @@ dustygroove.com, 1
|
|||
dustyspokesbnb.ca, 1
|
||||
dutch.desi, 1
|
||||
dutch1.nl, 1
|
||||
dutchessuganda.com, 1
|
||||
dutchrank.nl, 1
|
||||
dutchwanderers.nl, 1
|
||||
dutchweballiance.nl, 1
|
||||
|
@ -9281,6 +9280,7 @@ dwworld.co.uk, 1
|
|||
dxa.io, 0
|
||||
dxgl.info, 1
|
||||
dxm.no-ip.biz, 1
|
||||
dycoa.com, 1
|
||||
dyeager.org, 1
|
||||
dyktig.as, 1
|
||||
dyktig.no, 1
|
||||
|
@ -9356,7 +9356,6 @@ e30.ee, 1
|
|||
e3kids.com, 1
|
||||
e3q.de, 1
|
||||
e4metech.com, 1
|
||||
e505.net, 1
|
||||
e52888.com, 1
|
||||
e52888.net, 1
|
||||
e53888.com, 1
|
||||
|
@ -9835,6 +9834,7 @@ eloge.se, 1
|
|||
elonbase.com, 1
|
||||
elosrah.com, 1
|
||||
elosuite.com, 1
|
||||
eloxt.com, 1
|
||||
elpado.de, 1
|
||||
elpo.net, 1
|
||||
elpoderdelespiritu.org, 1
|
||||
|
@ -10005,7 +10005,6 @@ engelundlicht.ch, 1
|
|||
engg.ca, 1
|
||||
engineowning.com, 1
|
||||
enginepit.com, 1
|
||||
enginx.cn, 1
|
||||
enginx.net, 1
|
||||
englerts.de, 1
|
||||
englishbulgaria.net, 1
|
||||
|
@ -10116,7 +10115,7 @@ epiteugma.com, 1
|
|||
epizentrum.work, 1
|
||||
epizentrum.works, 1
|
||||
epmcentroitalia.it, 1
|
||||
epoch.com, 0
|
||||
epoch.com, 1
|
||||
epolitiker.com, 1
|
||||
epos-distributor.co.uk, 1
|
||||
eposbirmingham.co.uk, 1
|
||||
|
@ -10804,6 +10803,7 @@ f3nws.com, 1
|
|||
f42.net, 1
|
||||
f43.me, 1
|
||||
f5movies.top, 1
|
||||
f5nu.com, 1
|
||||
f5w.de, 1
|
||||
f8842.com, 1
|
||||
f9digital.com, 1
|
||||
|
@ -10862,7 +10862,6 @@ fadednet.com, 0
|
|||
faderweb.de, 1
|
||||
fads-center.online, 1
|
||||
faehler.de, 1
|
||||
faerb.it, 1
|
||||
faeriecakes.be, 1
|
||||
fafatiger.com, 1
|
||||
fag.wtf, 1
|
||||
|
@ -11248,7 +11247,6 @@ fili.org, 1
|
|||
filingsmadeeasy.com, 1
|
||||
filip-prochazka.com, 1
|
||||
filippo.io, 1
|
||||
filipsebesta.com, 1
|
||||
filleritemsindia.com, 1
|
||||
fillitupchallenge.eu, 1
|
||||
fillmysuitca.se, 1
|
||||
|
@ -11470,6 +11468,7 @@ flood.io, 1
|
|||
flooringnightmares.com, 1
|
||||
floort.net, 0
|
||||
flopix.net, 0
|
||||
flopy.club, 1
|
||||
florence.uk.net, 1
|
||||
florenceapp.co.uk, 1
|
||||
florent-tatard.fr, 1
|
||||
|
@ -11482,6 +11481,7 @@ floriankeller.de, 1
|
|||
florianmitrea.uk, 1
|
||||
florianschmitt.ca, 1
|
||||
floriantanner.ch, 1
|
||||
florida-prep.org, 1
|
||||
floridaderi.ru, 1
|
||||
floridafieros.org, 1
|
||||
floridahomesinvest.com, 1
|
||||
|
@ -11612,6 +11612,7 @@ foodplantengineering.com, 1
|
|||
foodsafety.gov, 1
|
||||
foodsafetyjobs.gov, 1
|
||||
foodserve.in, 1
|
||||
foodsouvenirs.it, 1
|
||||
foodwise.marketing, 1
|
||||
fooishbar.org, 0
|
||||
foolip.org, 1
|
||||
|
@ -11815,6 +11816,7 @@ frebi.org, 1
|
|||
frebib.net, 1
|
||||
freddysfuncastles.co.uk, 1
|
||||
freddythechick.uk, 1
|
||||
frederik-braun.com, 1
|
||||
frederikschoell.de, 0
|
||||
frederikvig.com, 1
|
||||
fredliang.cn, 1
|
||||
|
@ -11963,7 +11965,6 @@ fromlemaytoz.com, 1
|
|||
fromscratch.rocks, 1
|
||||
fromthesoutherncross.com, 1
|
||||
fronteers.nl, 0
|
||||
frontline.cloud, 1
|
||||
frontline6.com, 1
|
||||
fropky.com, 1
|
||||
frostbytes.net, 1
|
||||
|
@ -12113,6 +12114,7 @@ furtivelook.com, 1
|
|||
fusa-miyamoto.jp, 1
|
||||
fuseos.net, 1
|
||||
fushee.com, 1
|
||||
fuskator.com, 1
|
||||
fussball-xxl.de, 1
|
||||
fussell.io, 1
|
||||
futbolvivo.tv, 1
|
||||
|
@ -12863,6 +12865,7 @@ gnosticjade.net, 1
|
|||
gnucashtoqif.us, 1
|
||||
gnunet.org, 1
|
||||
gnwp.eu, 1
|
||||
gnylf.com, 1
|
||||
go-embedded.de, 1
|
||||
go-zh.org, 1
|
||||
go.xero.com, 0
|
||||
|
@ -13253,6 +13256,7 @@ gsgs.se, 1
|
|||
gsi-network.com, 1
|
||||
gsimagebank.co.uk, 1
|
||||
gslink.me, 1
|
||||
gsmkungen.com, 1
|
||||
gsmsecurity.net, 1
|
||||
gsoc.se, 1
|
||||
gsrc.io, 1
|
||||
|
@ -13613,6 +13617,7 @@ harmoney.com.au, 1
|
|||
haroldsharpe.com, 1
|
||||
harringtonca.com, 1
|
||||
harrisonsand.com, 0
|
||||
harrisonsdirect.co.uk, 1
|
||||
harrisonswebsites.com, 1
|
||||
harryharrison.co, 1
|
||||
harrymclaren.co.uk, 1
|
||||
|
@ -13642,7 +13647,6 @@ hash.works, 1
|
|||
hashcat.net, 1
|
||||
hashes.org, 1
|
||||
hashi.dk, 1
|
||||
hashiconf.com, 1
|
||||
hashiconf.eu, 1
|
||||
hashicorp.com, 1
|
||||
hashimah.ca, 1
|
||||
|
@ -13881,7 +13885,6 @@ helpmij.cf, 1
|
|||
helppresta.com, 1
|
||||
helpstarloja.com.br, 1
|
||||
helpverif.com, 1
|
||||
helpwithmybank.gov, 1
|
||||
helsingfors.guide, 1
|
||||
helsinki.dating, 1
|
||||
helup.com, 1
|
||||
|
@ -14439,6 +14442,7 @@ hpeditor.tk, 1
|
|||
hpisavageforum.com, 1
|
||||
hpkp-faq.de, 1
|
||||
hpnow.com.br, 1
|
||||
hqq.tv, 1
|
||||
hqwebhosting.tk, 0
|
||||
hr98.tk, 1
|
||||
hr98.xyz, 1
|
||||
|
@ -14848,6 +14852,8 @@ ifasec.de, 0
|
|||
ifcfg.me, 1
|
||||
ifconfig.co, 1
|
||||
ifelse.io, 1
|
||||
ifengge.cn, 1
|
||||
ifengge.me, 1
|
||||
ifightsurveillance.com, 1
|
||||
ifightsurveillance.net, 1
|
||||
ifightsurveillance.org, 1
|
||||
|
@ -15456,6 +15462,7 @@ inwestcorp.se, 1
|
|||
inzdr.com, 1
|
||||
iobint.com, 1
|
||||
iocheck.com, 0
|
||||
iodice.org, 1
|
||||
iodine.com, 1
|
||||
iodu.re, 1
|
||||
ioiart.eu, 1
|
||||
|
@ -15492,6 +15499,7 @@ ipfp.pl, 1
|
|||
ipfs.ink, 1
|
||||
ipfs.io, 1
|
||||
iphonechina.net, 1
|
||||
iphoneunlock.nu, 1
|
||||
iphonote.com, 1
|
||||
ipintel.io, 1
|
||||
iplabs.de, 1
|
||||
|
@ -15666,7 +15674,6 @@ isz.no, 1
|
|||
it-adminio.ru, 1
|
||||
it-fernau.com, 1
|
||||
it-jobbank.dk, 1
|
||||
it-kron.de, 1
|
||||
it-labor.info, 1
|
||||
it-maker.eu, 1
|
||||
it-rotter.de, 1
|
||||
|
@ -15951,7 +15958,6 @@ janiat.com, 1
|
|||
janik.xyz, 0
|
||||
janjoris.nl, 1
|
||||
jankoepsel.com, 1
|
||||
janmachynka.cz, 1
|
||||
jann.is, 1
|
||||
jannisfink.de, 1
|
||||
janoberst.com, 0
|
||||
|
@ -16002,6 +16008,7 @@ javalestari.com, 1
|
|||
javamilk.com, 1
|
||||
javascriptlab.fr, 1
|
||||
javfree.me, 1
|
||||
javiermixdjs.com, 1
|
||||
jawn.ca, 1
|
||||
jawnelodzkie.org.pl, 1
|
||||
jaxageto.de, 1
|
||||
|
@ -16701,7 +16708,6 @@ kai.cool, 1
|
|||
kaibol.com, 1
|
||||
kaigojj.com, 1
|
||||
kaika-facilitymanagement.de, 1
|
||||
kaika-hms.de, 1
|
||||
kaileymslusser.com, 1
|
||||
kainetsoft.com, 1
|
||||
kainz.bayern, 1
|
||||
|
@ -17936,7 +17942,6 @@ laserplaza.net, 1
|
|||
lasertechsolutions.com, 1
|
||||
lask.in, 1
|
||||
laskas.pl, 1
|
||||
lasnaves.com, 1
|
||||
laspequenassemillas.com, 1
|
||||
lasrecetasdeguada.com, 1
|
||||
lasse-it.dk, 1
|
||||
|
@ -18587,6 +18592,7 @@ lionlyrics.com, 1
|
|||
lionsdeal.com, 1
|
||||
lipartydepot.com, 1
|
||||
lipex.com, 1
|
||||
lipo.lol, 1
|
||||
lipoabaltimore.org, 1
|
||||
liqd.net, 1
|
||||
liquid.cz, 1
|
||||
|
@ -18669,6 +18675,7 @@ livekarten.de, 1
|
|||
livekort.com, 1
|
||||
livekort.dk, 1
|
||||
livekort.no, 1
|
||||
livekort.se, 1
|
||||
livekortti.com, 1
|
||||
livekortti.fi, 1
|
||||
livelexi.com, 1
|
||||
|
@ -18748,6 +18755,7 @@ locker.email, 1
|
|||
locker3.com, 1
|
||||
lockify.com, 1
|
||||
lockpick.nl, 1
|
||||
lockpicks.se, 1
|
||||
lockr.io, 1
|
||||
locksport.org.nz, 1
|
||||
locomore.com, 1
|
||||
|
@ -19412,7 +19420,6 @@ mammaw.com, 1
|
|||
mammeitalianeavienna.com, 1
|
||||
mammooc.org, 1
|
||||
mamochka.org.ua, 1
|
||||
mamospienas.lt, 1
|
||||
mamot.fr, 0
|
||||
mamout.xyz, 1
|
||||
mamuko.nl, 1
|
||||
|
@ -19663,6 +19670,7 @@ maryjruggles.com, 1
|
|||
marykatrinaphotography.com, 1
|
||||
masa-hou.com, 1
|
||||
mascosolutions.com, 1
|
||||
maservant.net, 1
|
||||
mashandco.it, 1
|
||||
mashandco.tv, 1
|
||||
mashek.net, 1
|
||||
|
@ -19936,6 +19944,7 @@ mdsave.com, 1
|
|||
mdwftw.com, 1
|
||||
mdx.no, 1
|
||||
mdxdave.de, 1
|
||||
mdxn.org, 1
|
||||
me-center.com, 1
|
||||
me-dc.com, 1
|
||||
me-groups.com, 1
|
||||
|
@ -20153,7 +20162,6 @@ menntagatt.is, 1
|
|||
menole.com, 1
|
||||
menole.de, 1
|
||||
menole.net, 1
|
||||
mensachterdepatient.nl, 1
|
||||
mensagemaniversario.com.br, 1
|
||||
mensagemdaluz.com, 1
|
||||
mensagensaniversario.com.br, 1
|
||||
|
@ -21036,7 +21044,7 @@ mplusm.eu, 1
|
|||
mpn.poker, 1
|
||||
mpnpokertour.com, 1
|
||||
mpodraza.pl, 1
|
||||
mpreserver.com, 1
|
||||
mpreserver.com, 0
|
||||
mpserver12.org, 1
|
||||
mpsgarage.com.au, 1
|
||||
mpsoundcraft.com, 1
|
||||
|
@ -21056,7 +21064,6 @@ mrcoolevents.com, 1
|
|||
mrd.ninja, 1
|
||||
mrdayman.com, 1
|
||||
mrdleisure.co.uk, 1
|
||||
mredsanders.net, 1
|
||||
mremallin.ca, 1
|
||||
mrevolution.eu, 1
|
||||
mrinalpurohit.in, 1
|
||||
|
@ -21065,6 +21072,7 @@ mrjooz.com, 1
|
|||
mrkapowski.com, 1
|
||||
mrketolocksmith.com, 1
|
||||
mrknee.gr, 1
|
||||
mrksk.com, 1
|
||||
mrleonardo.com, 1
|
||||
mrliu.me, 1
|
||||
mrmoregame.de, 1
|
||||
|
@ -21663,8 +21671,6 @@ nathan.io, 1
|
|||
nathankonopinski.com, 1
|
||||
nathansmetana.com, 1
|
||||
nathumarket.com.br, 1
|
||||
nationalbank.gov, 1
|
||||
nationalbanknet.gov, 1
|
||||
nationalcentereg.org, 1
|
||||
nationalcprfoundation.com, 1
|
||||
nationalcrimecheck.com.au, 1
|
||||
|
@ -22478,7 +22484,6 @@ novabench.com, 1
|
|||
novacoast.com, 0
|
||||
novadermis.es, 1
|
||||
novafreixo.pt, 1
|
||||
novaopcaofestas.com.br, 1
|
||||
novascan.net, 1
|
||||
novawave.ca, 1
|
||||
nove.city, 1
|
||||
|
@ -23650,7 +23655,6 @@ patentfamily.de, 1
|
|||
paterno-gaming.com, 1
|
||||
patflix.com, 1
|
||||
pathagoras.com, 1
|
||||
pathwaystoresilience.org, 1
|
||||
pathwaytofaith.com, 1
|
||||
patika-biztositas.hu, 1
|
||||
patikabiztositas.hu, 1
|
||||
|
@ -23950,6 +23954,7 @@ petelew.is, 1
|
|||
peter.org.ua, 1
|
||||
peterandjoelle.co.uk, 1
|
||||
peterboers.info, 1
|
||||
peterdavehello.org, 1
|
||||
peterfolta.net, 1
|
||||
peterhuetz.at, 1
|
||||
peterhuetz.com, 1
|
||||
|
@ -24104,7 +24109,6 @@ phuket-idc.de, 1
|
|||
phunehehe.net, 1
|
||||
phuong.faith, 1
|
||||
phurl.de, 1
|
||||
phurl.io, 1
|
||||
phus.lu, 1
|
||||
physicalism.com, 1
|
||||
physicalist.com, 1
|
||||
|
@ -24613,6 +24617,7 @@ portalcarriers.com, 1
|
|||
portalcentric.net, 1
|
||||
portalisapres.cl, 1
|
||||
portalkla.com.br, 1
|
||||
portalzine.de, 1
|
||||
portefeuillesignalen.nl, 1
|
||||
portercup.com, 1
|
||||
porterranchelectrical.com, 1
|
||||
|
@ -24846,7 +24851,6 @@ printerleasing.be, 1
|
|||
printexpress.cloud, 1
|
||||
printf.de, 1
|
||||
printler.com, 1
|
||||
printmet.com, 1
|
||||
printsos.com, 1
|
||||
prior-it.be, 1
|
||||
priorite-education.com, 1
|
||||
|
@ -24863,7 +24867,6 @@ privacy-week.at, 1
|
|||
privacy.com, 1
|
||||
privacybadger.org, 1
|
||||
privacyforjournalists.org.au, 1
|
||||
privacyinternational.org, 1
|
||||
privacymanatee.com, 1
|
||||
privacynow.eu, 1
|
||||
privacyscore.org, 1
|
||||
|
@ -25073,7 +25076,6 @@ proxyportal.net, 1
|
|||
proxyportal.org, 1
|
||||
proymaganadera.com, 1
|
||||
prpsss.com, 1
|
||||
prstatic.com, 1
|
||||
prt.in.th, 1
|
||||
prtimes.com, 1
|
||||
prtpe.com, 1
|
||||
|
@ -25199,10 +25201,12 @@ purplebooth.co.uk, 1
|
|||
purplebricksplc.com, 1
|
||||
purplehippie.in, 1
|
||||
purplemoon.ch, 1
|
||||
purplemoon.mobi, 1
|
||||
purpleplains.net, 1
|
||||
purplepr.bg, 1
|
||||
purplestar.ch, 1
|
||||
purplestar.com, 1
|
||||
purplestar.mobi, 1
|
||||
purplewindows.net, 1
|
||||
purplez.pw, 1
|
||||
purpspc.com, 1
|
||||
|
@ -27898,7 +27902,6 @@ shopkini.com, 1
|
|||
shoplandia.co, 1
|
||||
shoppia.se, 1
|
||||
shopping24.de, 1
|
||||
shoppingreview.org, 1
|
||||
shoppr.dk, 1
|
||||
shoprsc.com, 1
|
||||
shopsouthafrican.com, 1
|
||||
|
@ -27946,6 +27949,7 @@ si-benelux.nl, 1
|
|||
si.to, 1
|
||||
siamega.com, 1
|
||||
siamojo.com, 1
|
||||
siamsnus.com, 1
|
||||
siao-mei.com, 1
|
||||
sibfk.org, 1
|
||||
sibrenvasse.nl, 1
|
||||
|
@ -27961,6 +27965,7 @@ sidepodcast.com, 1
|
|||
sidepodcastdaily.com, 1
|
||||
sidepodcastextra.com, 1
|
||||
sideshowbarker.net, 1
|
||||
sidium.de, 1
|
||||
sidnicio.us, 1
|
||||
sidonge.com, 1
|
||||
sidongkim.com, 1
|
||||
|
@ -28347,6 +28352,7 @@ slainvet.net, 1
|
|||
slamdjapan.com, 1
|
||||
slamix.nl, 1
|
||||
slane.cn, 1
|
||||
slangbellor.com, 1
|
||||
slapen17.nl, 1
|
||||
slaps.be, 1
|
||||
slash32.co.uk, 1
|
||||
|
@ -28490,7 +28496,6 @@ smipty.com, 1
|
|||
smit.com.ua, 1
|
||||
smith.is, 1
|
||||
smithandcanova.co.uk, 0
|
||||
smkw.com, 0
|
||||
sml.lc, 1
|
||||
smm.im, 1
|
||||
smoo.st, 1
|
||||
|
@ -28734,6 +28739,7 @@ sonixonline.com, 1
|
|||
sonja-daniels.com, 1
|
||||
sonja-kowa.de, 1
|
||||
sonoecoracao.com.br, 1
|
||||
sonyunlock.nu, 1
|
||||
soohealthy.nl, 1
|
||||
soomee.be, 1
|
||||
soomee1.be, 1
|
||||
|
@ -29018,7 +29024,6 @@ sqlfeatures.com, 1
|
|||
sqr-training.com, 1
|
||||
sqroot.eu, 1
|
||||
sqshq.de, 1
|
||||
squaddraft.com, 1
|
||||
squadlinx.com, 1
|
||||
square-gaming.org, 1
|
||||
square-src.de, 0
|
||||
|
@ -29352,6 +29357,7 @@ stikonas.eu, 0
|
|||
stilartmoebel.de, 1
|
||||
stilettomoda.com.br, 1
|
||||
stillyarts.com, 0
|
||||
stilmobil.se, 1
|
||||
stimmgabel.lu, 1
|
||||
stin.hr, 1
|
||||
stintup.com, 1
|
||||
|
@ -30881,7 +30887,6 @@ tianshili.me, 1
|
|||
tianxicaipiao.com, 1
|
||||
tianxicaipiao.win, 1
|
||||
tianxicp.com, 1
|
||||
tibbitshall.ca, 1
|
||||
tibipg.com, 1
|
||||
tibovanheule.site, 1
|
||||
ticfleet.com, 1
|
||||
|
@ -30984,6 +30989,7 @@ tintencenter.com, 1
|
|||
tintenfix.net, 1
|
||||
tintenfux.de, 1
|
||||
tintenland.de, 1
|
||||
tintenprofi.de, 1
|
||||
tiny.ee, 1
|
||||
tinyhousefinance.com.au, 1
|
||||
tinylan.com, 1
|
||||
|
@ -31308,7 +31314,7 @@ torbe.es, 1
|
|||
torchantifa.org, 1
|
||||
toretame.jp, 1
|
||||
toretfaction.net, 1
|
||||
tormentedradio.com, 1
|
||||
tormentedradio.com, 0
|
||||
torn1.se, 1
|
||||
torngalaxy.com, 1
|
||||
torontocorporatelimo.services, 1
|
||||
|
@ -31820,7 +31826,6 @@ tvcmarketing.com, 1
|
|||
tver-msk.ru, 1
|
||||
tverdohleb.com, 1
|
||||
tverskaya-outlet.ru, 1
|
||||
tvoru.com.ua, 1
|
||||
tvs-virtual.cz, 1
|
||||
tvsheerenhoek.nl, 1
|
||||
tw.search.yahoo.com, 0
|
||||
|
@ -32217,7 +32222,6 @@ urbanmelbourne.info, 1
|
|||
urbanmic.com, 1
|
||||
urbannewsservice.com, 1
|
||||
urbansparrow.in, 1
|
||||
urbanstylestaging.com, 1
|
||||
urbanwildlifealliance.org, 1
|
||||
urbexdk.nl, 1
|
||||
urcentral.com, 1
|
||||
|
@ -32532,7 +32536,6 @@ veke.fi, 1
|
|||
vekenz.com, 1
|
||||
velasense.com, 1
|
||||
velen.io, 1
|
||||
velonustraduction.com, 1
|
||||
velotyretz.fr, 1
|
||||
venalytics.com, 1
|
||||
vendigital.com, 1
|
||||
|
@ -32950,7 +32953,7 @@ vorodevops.com, 1
|
|||
vos-fleurs.ch, 1
|
||||
vos-fleurs.com, 1
|
||||
vosgym.jp, 1
|
||||
voshod.org, 1
|
||||
voshod.org, 0
|
||||
vosky.fr, 1
|
||||
vostronet.com, 1
|
||||
voter-info.uk, 1
|
||||
|
@ -33054,6 +33057,7 @@ w7k.de, 1
|
|||
w84.it, 1
|
||||
w9rld.com, 1
|
||||
wa-stromerzeuger.de, 1
|
||||
waaw.tv, 1
|
||||
wabatam.com, 1
|
||||
wabifoggynuts.com, 1
|
||||
wachter.biz, 1
|
||||
|
@ -33185,6 +33189,7 @@ waterschaplimburg.nl, 1
|
|||
watertrails.io, 1
|
||||
waterworkscondos.com, 1
|
||||
watsonwork.me, 1
|
||||
wattechweb.com, 1
|
||||
wave-ola.es, 1
|
||||
wavesboardshop.com, 1
|
||||
wavesoftime.com, 1
|
||||
|
@ -33285,7 +33290,7 @@ webdesignplayground.io, 1
|
|||
webdev-quiz.de, 1
|
||||
webdevops.io, 1
|
||||
webdosh.com, 1
|
||||
webduck.nl, 1
|
||||
webduck.nl, 0
|
||||
webeau.com, 1
|
||||
webergrillrestaurant.com, 1
|
||||
webev.ru, 1
|
||||
|
@ -33348,7 +33353,6 @@ webseitendesigner.com, 0
|
|||
webseitenserver.com, 1
|
||||
websenat.de, 1
|
||||
websharks.org, 1
|
||||
websiteadvice.com.au, 1
|
||||
websiteforlease.ca, 1
|
||||
websiteout.ca, 1
|
||||
websiteout.net, 1
|
||||
|
@ -33462,7 +33466,6 @@ wellsolveit.com, 1
|
|||
wellsplasticsurgery.com, 1
|
||||
wellspringcamps.com, 1
|
||||
welovejobs.com, 1
|
||||
welovemail.com, 1
|
||||
welsh.com.br, 1
|
||||
welteneroberer.de, 1
|
||||
weltengilde.de, 1
|
||||
|
@ -34218,7 +34221,6 @@ wyssmuller.ch, 1
|
|||
wyu.cc, 1
|
||||
wyzwaniemilosci.com, 1
|
||||
wzfetish.com.br, 1
|
||||
wzrd.in, 1
|
||||
wzyboy.org, 1
|
||||
x-iweb.ru, 1
|
||||
x-lan.be, 1
|
||||
|
@ -34403,6 +34405,7 @@ xn--lna-2000-9za.nu, 1
|
|||
xn--lna-4000-9za.nu, 1
|
||||
xn--love-un4c7e0d4a.com, 1
|
||||
xn--lsaupp-iua.se, 1
|
||||
xn--lsupp-mra.net, 1
|
||||
xn--manuela-stsser-psb.de, 1
|
||||
xn--maraa-rta.org, 1
|
||||
xn--mentaltraining-fr-musiker-uwc.ch, 1
|
||||
|
@ -34977,6 +34980,7 @@ zbp.at, 0
|
|||
zbrane-doplnky.cz, 1
|
||||
zby.io, 1
|
||||
zbyga.cz, 1
|
||||
zbyte.it, 0
|
||||
zcarot.com, 1
|
||||
zcarrot.com, 1
|
||||
zcgram.com, 1
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
// -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
|
||||
// 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 strict";
|
||||
|
||||
// Tests to make sure that the certificate DB works with non-ASCII paths.
|
||||
|
||||
// Append a single quote and non-ASCII characters to the profile path.
|
||||
let env = Components.classes["@mozilla.org/process/environment;1"]
|
||||
.getService(Components.interfaces.nsIEnvironment);
|
||||
let profd = env.get("XPCSHELL_TEST_PROFILE_DIR");
|
||||
let file = Components.classes["@mozilla.org/file/local;1"]
|
||||
.createInstance(Components.interfaces.nsIFile);
|
||||
file.initWithPath(profd);
|
||||
file.append("'÷1");
|
||||
env.set("XPCSHELL_TEST_PROFILE_DIR", file.path);
|
||||
|
||||
file = do_get_profile(); // must be called before getting nsIX509CertDB
|
||||
Assert.ok(/[^\x20-\x7f]/.test(file.path), "the profile path should contain a non-ASCII character");
|
||||
if (mozinfo.os == "win") {
|
||||
file.QueryInterface(Components.interfaces.nsILocalFileWin);
|
||||
Assert.ok(/[^\x20-\x7f]/.test(file.canonicalPath), "the profile short path should contain a non-ASCII character");
|
||||
}
|
||||
|
||||
// Restore the original value.
|
||||
env.set("XPCSHELL_TEST_PROFILE_DIR", profd);
|
||||
|
||||
const certdb = Cc["@mozilla.org/security/x509certdb;1"]
|
||||
.getService(Ci.nsIX509CertDB);
|
||||
|
||||
function load_cert(cert_name, trust_string) {
|
||||
let cert_filename = cert_name + ".pem";
|
||||
return addCertFromFile(certdb, "test_cert_trust/" + cert_filename,
|
||||
trust_string);
|
||||
}
|
||||
|
||||
function run_test() {
|
||||
let certList = [
|
||||
"ca",
|
||||
"int",
|
||||
"ee",
|
||||
];
|
||||
let loadedCerts = [];
|
||||
for (let certName of certList) {
|
||||
loadedCerts.push(load_cert(certName, ",,"));
|
||||
}
|
||||
|
||||
let ca_cert = loadedCerts[0];
|
||||
notEqual(ca_cert, null, "CA cert should have successfully loaded");
|
||||
let int_cert = loadedCerts[1];
|
||||
notEqual(int_cert, null, "Intermediate cert should have successfully loaded");
|
||||
let ee_cert = loadedCerts[2];
|
||||
notEqual(ee_cert, null, "EE cert should have successfully loaded");
|
||||
}
|
|
@ -108,6 +108,7 @@ run-sequentially = hardcoded ports
|
|||
[test_missing_intermediate.js]
|
||||
run-sequentially = hardcoded ports
|
||||
[test_name_constraints.js]
|
||||
[test_nonascii_path.js]
|
||||
[test_nsCertType.js]
|
||||
run-sequentially = hardcoded ports
|
||||
[test_nsIX509Cert_utf8.js]
|
||||
|
|
|
@ -268,14 +268,6 @@ function mockGetWindowEnumerator(url, numWindows, numTabs, indexes, moreURLs) {
|
|||
};
|
||||
}
|
||||
|
||||
// Helper that allows checking array equality.
|
||||
function do_check_array_eq(a1, a2) {
|
||||
Assert.equal(a1.length, a2.length);
|
||||
for (let i = 0; i < a1.length; ++i) {
|
||||
Assert.equal(a1[i], a2[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// Helper function to get the sync telemetry and add the typically used test
|
||||
// engine names to its list of allowed engines.
|
||||
function get_sync_test_telemetry() {
|
||||
|
|
|
@ -81,7 +81,7 @@ add_task(async function test_basics() {
|
|||
|
||||
engines = await manager.getEnabled();
|
||||
|
||||
do_check_array_eq(engines, [petrol, dummy, diesel]);
|
||||
Assert.deepEqual(engines, [petrol, dummy, diesel]);
|
||||
|
||||
_("Changing the priorities should change the order in getEnabled()");
|
||||
|
||||
|
@ -89,7 +89,7 @@ add_task(async function test_basics() {
|
|||
|
||||
engines = await manager.getEnabled();
|
||||
|
||||
do_check_array_eq(engines, [petrol, diesel, dummy]);
|
||||
Assert.deepEqual(engines, [petrol, diesel, dummy]);
|
||||
|
||||
_("Unregister an engine by name");
|
||||
manager.unregister("dummy");
|
||||
|
|
|
@ -261,10 +261,10 @@ add_task(async function test_ensureLoggedIn() {
|
|||
Assert.ok(d7.same);
|
||||
Assert.ok(d8.same);
|
||||
|
||||
do_check_array_eq(d1.changed, []);
|
||||
do_check_array_eq(d2.changed, ["bar"]);
|
||||
do_check_array_eq(d3.changed, ["bar"]);
|
||||
do_check_array_eq(d4.changed, ["bar", "foo"]);
|
||||
do_check_array_eq(d5.changed, ["baz", "foo"]);
|
||||
do_check_array_eq(d6.changed, ["bar", "foo"]);
|
||||
Assert.deepEqual(d1.changed, []);
|
||||
Assert.deepEqual(d2.changed, ["bar"]);
|
||||
Assert.deepEqual(d3.changed, ["bar"]);
|
||||
Assert.deepEqual(d4.changed, ["bar", "foo"]);
|
||||
Assert.deepEqual(d5.changed, ["baz", "foo"]);
|
||||
Assert.deepEqual(d6.changed, ["bar", "foo"]);
|
||||
});
|
||||
|
|
|
@ -10,6 +10,7 @@ mkdir -p /setup
|
|||
cd /setup
|
||||
|
||||
apt_packages=()
|
||||
apt_packages+=('codespell')
|
||||
apt_packages+=('curl')
|
||||
apt_packages+=('locales')
|
||||
apt_packages+=('git')
|
||||
|
|
|
@ -305,7 +305,10 @@ this.ExtensionSettingsStore = {
|
|||
{id, installDate: addon.installDate.valueOf(), value, enabled: true});
|
||||
} else {
|
||||
// Item already exists or this extension, so update it.
|
||||
keyInfo.precedenceList[foundIndex].value = value;
|
||||
let item = keyInfo.precedenceList[foundIndex];
|
||||
item.value = value;
|
||||
// Ensure the item is enabled.
|
||||
item.enabled = true;
|
||||
}
|
||||
|
||||
// Sort the list.
|
||||
|
|
|
@ -280,3 +280,48 @@ add_task(async function test_preference_manager() {
|
|||
|
||||
await promiseShutdownManager();
|
||||
});
|
||||
|
||||
add_task(async function test_preference_manager_set_when_disabled() {
|
||||
await promiseStartupManager();
|
||||
|
||||
let id = "@set-disabled-pref";
|
||||
let extension = ExtensionTestUtils.loadExtension({
|
||||
useAddonManager: "temporary",
|
||||
manifest: {
|
||||
applications: {gecko: {id}},
|
||||
},
|
||||
});
|
||||
|
||||
await extension.startup();
|
||||
|
||||
await ExtensionSettingsStore.initialize();
|
||||
ExtensionPreferencesManager.addSetting("some-pref", {
|
||||
pref_names: ["foo"],
|
||||
setCallback(value) {
|
||||
return {foo: value};
|
||||
},
|
||||
});
|
||||
|
||||
// We want to test that ExtensionPreferencesManager.setSetting() will enable a
|
||||
// disabled setting so we will manually add and disable it in
|
||||
// ExtensionSettingsStore.
|
||||
await ExtensionSettingsStore.addSetting(
|
||||
id, "prefs", "some-pref", "my value", () => "default");
|
||||
|
||||
let item = ExtensionSettingsStore.getSetting("prefs", "some-pref");
|
||||
equal(item.value, "my value", "The value is set");
|
||||
|
||||
ExtensionSettingsStore.disable(id, "prefs", "some-pref");
|
||||
|
||||
item = ExtensionSettingsStore.getSetting("prefs", "some-pref");
|
||||
equal(item.initialValue, "default", "The value is back to default");
|
||||
|
||||
await ExtensionPreferencesManager.setSetting(id, "some-pref", "new value");
|
||||
|
||||
item = ExtensionSettingsStore.getSetting("prefs", "some-pref");
|
||||
equal(item.value, "new value", "The value is set again");
|
||||
|
||||
await extension.unload();
|
||||
|
||||
await promiseShutdownManager();
|
||||
});
|
||||
|
|
|
@ -536,6 +536,41 @@ add_task(async function test_settings_store_setByUser() {
|
|||
await promiseShutdownManager();
|
||||
});
|
||||
|
||||
add_task(async function test_settings_store_add_disabled() {
|
||||
await promiseStartupManager();
|
||||
|
||||
let id = "@add-on-disable";
|
||||
let extension = ExtensionTestUtils.loadExtension({
|
||||
useAddonManager: "temporary",
|
||||
manifest: {
|
||||
applications: {gecko: {id}},
|
||||
},
|
||||
});
|
||||
|
||||
await extension.startup();
|
||||
await ExtensionSettingsStore.initialize();
|
||||
|
||||
await ExtensionSettingsStore.addSetting(id, "foo", "bar", "set", () => "not set");
|
||||
|
||||
let item = ExtensionSettingsStore.getSetting("foo", "bar");
|
||||
equal(item.id, id, "The add-on is in control");
|
||||
equal(item.value, "set", "The value is set");
|
||||
|
||||
ExtensionSettingsStore.disable(id, "foo", "bar");
|
||||
item = ExtensionSettingsStore.getSetting("foo", "bar");
|
||||
equal(item.id, undefined, "The add-on is not in control");
|
||||
equal(item.initialValue, "not set", "The value is not set");
|
||||
|
||||
await ExtensionSettingsStore.addSetting(id, "foo", "bar", "set", () => "not set");
|
||||
item = ExtensionSettingsStore.getSetting("foo", "bar");
|
||||
equal(item.id, id, "The add-on is in control");
|
||||
equal(item.value, "set", "The value is set");
|
||||
|
||||
await extension.unload();
|
||||
|
||||
await promiseShutdownManager();
|
||||
});
|
||||
|
||||
add_task(async function test_exceptions() {
|
||||
await ExtensionSettingsStore.initialize();
|
||||
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
codespell:
|
||||
description: Check code for common misspellings
|
||||
include: ['.']
|
||||
exclude:
|
||||
- third_party
|
||||
# List of extensions coming from:
|
||||
# tools/lint/{flake8,eslint}.yml
|
||||
# tools/mach_commands.py (clang-format)
|
||||
# + documentation
|
||||
# + localization files
|
||||
extensions:
|
||||
- js
|
||||
- jsm
|
||||
- jxs
|
||||
- xml
|
||||
- html
|
||||
- xhtml
|
||||
- cpp
|
||||
- c
|
||||
- h
|
||||
- configure
|
||||
- py
|
||||
- properties
|
||||
- rst
|
||||
type: external
|
||||
payload: spell:lint
|
|
@ -0,0 +1,117 @@
|
|||
# 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/.
|
||||
|
||||
from __future__ import absolute_import, print_function
|
||||
|
||||
import os
|
||||
import signal
|
||||
import which
|
||||
import re
|
||||
|
||||
# Py3/Py2 compatibility.
|
||||
try:
|
||||
from json.decoder import JSONDecodeError
|
||||
except ImportError:
|
||||
JSONDecodeError = ValueError
|
||||
|
||||
from mozlint import result
|
||||
from mozprocess import ProcessHandlerMixin
|
||||
|
||||
|
||||
CODESPELL_NOT_FOUND = """
|
||||
Unable to locate codespell, please ensure it is installed and in
|
||||
your PATH or set the CODESPELL environment variable.
|
||||
|
||||
https://github.com/lucasdemarchi/codespell or your system's package manager.
|
||||
""".strip()
|
||||
|
||||
results = []
|
||||
|
||||
CODESPELL_FORMAT_REGEX = re.compile(r'(.*):(.*): (.*) ==> (.*)$')
|
||||
|
||||
|
||||
class CodespellProcess(ProcessHandlerMixin):
|
||||
def __init__(self, config, *args, **kwargs):
|
||||
self.config = config
|
||||
kwargs['processOutputLine'] = [self.process_line]
|
||||
ProcessHandlerMixin.__init__(self, *args, **kwargs)
|
||||
|
||||
def process_line(self, line):
|
||||
try:
|
||||
match = CODESPELL_FORMAT_REGEX.match(line)
|
||||
abspath, line, typo, correct = match.groups()
|
||||
except AttributeError:
|
||||
print('Unable to match regex against output: {}'.format(line))
|
||||
return
|
||||
|
||||
# Ignore false positive like aParent (which would be fixed to apparent)
|
||||
# See https://github.com/lucasdemarchi/codespell/issues/314
|
||||
m = re.match(r'^[a-z][A-Z][a-z]*', typo)
|
||||
if m:
|
||||
return
|
||||
res = {'path': os.path.relpath(abspath, self.config['root']),
|
||||
'message': typo + " ==> " + correct,
|
||||
'level': "warning",
|
||||
'lineno': line,
|
||||
}
|
||||
results.append(result.from_config(self.config, **res))
|
||||
|
||||
def run(self, *args, **kwargs):
|
||||
orig = signal.signal(signal.SIGINT, signal.SIG_IGN)
|
||||
ProcessHandlerMixin.run(self, *args, **kwargs)
|
||||
signal.signal(signal.SIGINT, orig)
|
||||
|
||||
|
||||
def run_process(config, cmd):
|
||||
proc = CodespellProcess(config, cmd)
|
||||
proc.run()
|
||||
try:
|
||||
proc.wait()
|
||||
except KeyboardInterrupt:
|
||||
proc.kill()
|
||||
|
||||
|
||||
def get_codespell_binary():
|
||||
"""
|
||||
Returns the path of the first codespell binary available
|
||||
if not found returns None
|
||||
"""
|
||||
binary = os.environ.get('CODESPELL')
|
||||
if binary:
|
||||
return binary
|
||||
|
||||
try:
|
||||
return which.which('codespell')
|
||||
except which.WhichError:
|
||||
return None
|
||||
|
||||
|
||||
def lint(paths, config, fix=None, **lintargs):
|
||||
|
||||
binary = get_codespell_binary()
|
||||
|
||||
if not binary:
|
||||
print(CODESPELL_NOT_FOUND)
|
||||
if 'MOZ_AUTOMATION' in os.environ:
|
||||
return 1
|
||||
return []
|
||||
|
||||
config['root'] = lintargs['root']
|
||||
cmd_args = [binary,
|
||||
'--disable-colors',
|
||||
# Silence some warnings:
|
||||
# 1: disable warnings about wrong encoding
|
||||
# 2: disable warnings about binary file
|
||||
'--quiet-level=3',
|
||||
]
|
||||
|
||||
# Disabled for now because of
|
||||
# https://github.com/lucasdemarchi/codespell/issues/314
|
||||
# if fix:
|
||||
# cmd_args.append('--write-changes')
|
||||
|
||||
base_command = cmd_args + paths
|
||||
|
||||
run_process(config, base_command)
|
||||
return results
|
Загрузка…
Ссылка в новой задаче