mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-15 14:25:52 +00:00
Merge mozilla-central to inbound. a=merge CLOSED TREE
This commit is contained in:
commit
9bf3d93934
@ -115,8 +115,11 @@ class FormAutofillSection {
|
||||
*
|
||||
* @param {Object} profile
|
||||
* A profile for pre-processing before filling values.
|
||||
* @returns {boolean} Whether the profile should be filled.
|
||||
*/
|
||||
async prepareFillingProfile(profile) {}
|
||||
async prepareFillingProfile(profile) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* Override this methid if any data for `createRecord` is needed to be
|
||||
@ -248,7 +251,10 @@ class FormAutofillSection {
|
||||
throw new Error("No fieldDetail for the focused input.");
|
||||
}
|
||||
|
||||
await this.prepareFillingProfile(profile);
|
||||
if (!await this.prepareFillingProfile(profile)) {
|
||||
log.debug("profile cannot be filled", profile);
|
||||
return;
|
||||
}
|
||||
log.debug("profile in autofillFields:", profile);
|
||||
|
||||
this.filledRecordGUID = profile.guid;
|
||||
@ -853,6 +859,7 @@ class FormAutofillCreditCardSection extends FormAutofillSection {
|
||||
*
|
||||
* @param {Object} profile
|
||||
* A profile for pre-processing before filling values.
|
||||
* @returns {boolean} Whether the profile should be filled.
|
||||
* @override
|
||||
*/
|
||||
async prepareFillingProfile(profile) {
|
||||
@ -865,11 +872,12 @@ class FormAutofillCreditCardSection extends FormAutofillSection {
|
||||
|
||||
if (!decrypted) {
|
||||
// Early return if the decrypted is empty or undefined
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
profile["cc-number"] = decrypted;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,7 @@ support-files =
|
||||
[browser_autocomplete_marked_detached_tab.js]
|
||||
[browser_check_installed.js]
|
||||
[browser_creditCard_doorhanger.js]
|
||||
[browser_creditCard_fill_master_password.js]
|
||||
[browser_dropdown_layout.js]
|
||||
[browser_editAddressDialog.js]
|
||||
[browser_editCreditCardDialog.js]
|
||||
|
@ -0,0 +1,25 @@
|
||||
"use strict";
|
||||
|
||||
add_task(async function test_fill_creditCard_with_mp_enabled_but_canceled() {
|
||||
await saveCreditCard(TEST_CREDIT_CARD_2);
|
||||
|
||||
LoginTestUtils.masterPassword.enable();
|
||||
registerCleanupFunction(() => {
|
||||
LoginTestUtils.masterPassword.disable();
|
||||
});
|
||||
|
||||
let masterPasswordDialogShown = waitForMasterPasswordDialog(false); // cancel
|
||||
await BrowserTestUtils.withNewTab({gBrowser, url: CREDITCARD_FORM_URL},
|
||||
async function(browser) {
|
||||
await openPopupOn(browser, "#cc-name");
|
||||
const ccItem = getDisplayedPopupItems(browser)[0];
|
||||
await EventUtils.synthesizeMouseAtCenter(ccItem, {});
|
||||
await Promise.all([masterPasswordDialogShown, expectPopupClose(browser)]);
|
||||
|
||||
await ContentTask.spawn(browser, {}, async function() {
|
||||
is(content.document.querySelector("#cc-name").value, "", "Check name");
|
||||
is(content.document.querySelector("#cc-number").value, "", "Check number");
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
@ -11,8 +11,8 @@
|
||||
/* These hover and active colors should work on both light and dark
|
||||
backgrounds. We'll later set colors that cater for light and dark
|
||||
backgrounds specifically when we can detect them. */
|
||||
--toolbarbutton-hover-background: hsla(0,0%,70%,.4);
|
||||
--toolbarbutton-active-background: hsla(0,0%,70%,.6);
|
||||
--toolbarbutton-hover-background: var(--lwt-toolbarbutton-hover-background, hsla(0,0%,70%,.4));
|
||||
--toolbarbutton-active-background: var(--lwt-toolbarbutton-active-background, hsla(0,0%,70%,.6));
|
||||
|
||||
--backbutton-background: hsla(0,100%,100%,.8);
|
||||
--backbutton-hover-background: var(--backbutton-background);
|
||||
@ -37,14 +37,14 @@
|
||||
[brighttext] to cater for OS themes where :-moz-lwtheme-* doesn't apply. */
|
||||
:root:-moz-lwtheme-darktext,
|
||||
toolbar:not([brighttext]) {
|
||||
--toolbarbutton-hover-background: hsla(240,5%,5%,.1);
|
||||
--toolbarbutton-active-background: hsla(240,5%,5%,.15);
|
||||
--toolbarbutton-hover-background: var(--lwt-toolbarbutton-hover-background, hsla(240,5%,5%,.1));
|
||||
--toolbarbutton-active-background: var(--lwt-toolbarbutton-active-background, hsla(240,5%,5%,.15));
|
||||
}
|
||||
|
||||
:root:-moz-lwtheme-brighttext,
|
||||
toolbar[brighttext] {
|
||||
--toolbarbutton-hover-background: hsla(0,0%,100%,.2);
|
||||
--toolbarbutton-active-background: hsla(0,0%,100%,.3);
|
||||
--toolbarbutton-hover-background: var(--lwt-toolbarbutton-hover-background, hsla(0,0%,100%,.2));
|
||||
--toolbarbutton-active-background: var(--lwt-toolbarbutton-active-background, hsla(0,0%,100%,.3));
|
||||
|
||||
--backbutton-background: var(--toolbarbutton-hover-background);
|
||||
--backbutton-hover-background: var(--toolbarbutton-active-background);
|
||||
@ -168,6 +168,18 @@ toolbar[brighttext] .toolbaritem-combined-buttons > separator {
|
||||
opacity: .3;
|
||||
}
|
||||
|
||||
#PersonalToolbar .toolbarbutton-1:not([disabled=true]):not([checked]):not([open]):not(:active),
|
||||
.tabbrowser-arrowscrollbox > .scrollbutton-up:not([disabled=true]),
|
||||
.tabbrowser-arrowscrollbox > .scrollbutton-down:not([disabled=true]),
|
||||
.findbar-button:not(:-moz-any([checked="true"],[disabled="true"])) > .toolbarbutton-text,
|
||||
toolbarbutton.bookmark-item:not(.subviewbutton):not([disabled="true"]):not([open]),
|
||||
toolbar .toolbarbutton-1:not([disabled=true]):not([checked]):not([open]):not(:active) > .toolbarbutton-icon,
|
||||
toolbar .toolbarbutton-1:not([disabled=true]):not([checked]):not([open]):not(:active) > .toolbarbutton-text,
|
||||
toolbar .toolbarbutton-1:not([disabled=true]):not([checked]):not([open]):not(:active) > .toolbarbutton-badge-stack {
|
||||
background-color: var(--lwt-toolbarbutton-background, transparent);
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
#PersonalToolbar .toolbarbutton-1:not([disabled=true]):not([checked]):not([open]):not(:active):hover,
|
||||
.tabbrowser-arrowscrollbox > .scrollbutton-up:not([disabled=true]):hover,
|
||||
.tabbrowser-arrowscrollbox > .scrollbutton-down:not([disabled=true]):hover,
|
||||
|
@ -310,6 +310,10 @@ private:
|
||||
|
||||
std::string getMangledName(clang::MangleContext *Ctx,
|
||||
const clang::NamedDecl *Decl) {
|
||||
if (isa<FunctionDecl>(Decl) && cast<FunctionDecl>(Decl)->isExternC()) {
|
||||
return cast<FunctionDecl>(Decl)->getNameAsString();
|
||||
}
|
||||
|
||||
if (isa<FunctionDecl>(Decl) || isa<VarDecl>(Decl)) {
|
||||
const DeclContext *DC = Decl->getDeclContext();
|
||||
if (isa<TranslationUnitDecl>(DC) || isa<NamespaceDecl>(DC) ||
|
||||
@ -809,7 +813,8 @@ public:
|
||||
}
|
||||
|
||||
enum {
|
||||
NoCrossref = 1,
|
||||
NoCrossref = 1 << 0,
|
||||
OperatorToken = 1 << 1,
|
||||
};
|
||||
|
||||
// This is the only function that emits analysis JSON data. It should be
|
||||
@ -832,11 +837,13 @@ public:
|
||||
std::string RangeStr = locationToString(Loc, EndOffset - StartOffset);
|
||||
std::string PeekRangeStr;
|
||||
|
||||
// Get the token's characters so we can make sure it's a valid token.
|
||||
const char *StartChars = SM.getCharacterData(Loc);
|
||||
std::string Text(StartChars, EndOffset - StartOffset);
|
||||
if (!isValidIdentifier(Text)) {
|
||||
return;
|
||||
if (!(Flags & OperatorToken)) {
|
||||
// Get the token's characters so we can make sure it's a valid token.
|
||||
const char *StartChars = SM.getCharacterData(Loc);
|
||||
std::string Text(StartChars, EndOffset - StartOffset);
|
||||
if (!isValidIdentifier(Text)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
FileInfo *F = getFileInfo(Loc);
|
||||
@ -1180,6 +1187,7 @@ public:
|
||||
}
|
||||
|
||||
std::string Mangled = getMangledName(CurMangleContext, NamedCallee);
|
||||
int Flags = 0;
|
||||
|
||||
Expr *CalleeExpr = E->getCallee()->IgnoreParenImpCasts();
|
||||
|
||||
@ -1187,6 +1195,7 @@ public:
|
||||
// Just take the first token.
|
||||
CXXOperatorCallExpr *Op = dyn_cast<CXXOperatorCallExpr>(E);
|
||||
Loc = Op->getOperatorLoc();
|
||||
Flags |= OperatorToken;
|
||||
} else if (MemberExpr::classof(CalleeExpr)) {
|
||||
MemberExpr *Member = dyn_cast<MemberExpr>(CalleeExpr);
|
||||
Loc = Member->getMemberLoc();
|
||||
@ -1204,7 +1213,7 @@ public:
|
||||
}
|
||||
|
||||
visitIdentifier("use", "function", getQualifiedName(NamedCallee), Loc, Mangled,
|
||||
getContext(Loc));
|
||||
getContext(Loc), Flags);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
9
layout/base/crashtests/1435015.html
Normal file
9
layout/base/crashtests/1435015.html
Normal file
@ -0,0 +1,9 @@
|
||||
<!doctype html>
|
||||
<style>
|
||||
div { display: contents; }
|
||||
</style>
|
||||
<math></math>
|
||||
<script>
|
||||
let div = document.createElementNS('http://www.w3.org/1998/Math/MathML', 'div');
|
||||
document.querySelector('math').appendChild(div);
|
||||
</script>
|
@ -522,3 +522,4 @@ load 1425893.html
|
||||
load 1428353.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) load 1429088.html
|
||||
load 1429961.html
|
||||
load 1435015.html
|
||||
|
@ -6095,6 +6095,7 @@ nsCSSFrameConstructor::AddFrameConstructionItemsInternal(nsFrameConstructorState
|
||||
}
|
||||
|
||||
bool isPopup = false;
|
||||
bool foundMathMLData = false;
|
||||
// Try to find frame construction data for this content
|
||||
const FrameConstructionData* data;
|
||||
if (isText) {
|
||||
@ -6124,6 +6125,7 @@ nsCSSFrameConstructor::AddFrameConstructionItemsInternal(nsFrameConstructorState
|
||||
}
|
||||
if (!data) {
|
||||
data = FindMathMLData(element, aTag, aNameSpaceID, styleContext);
|
||||
foundMathMLData = !!data;
|
||||
}
|
||||
if (!data) {
|
||||
data = FindSVGData(element, aTag, aNameSpaceID, aParentFrame,
|
||||
@ -6189,7 +6191,7 @@ nsCSSFrameConstructor::AddFrameConstructionItemsInternal(nsFrameConstructorState
|
||||
//
|
||||
// Figure out what should happen for display: contents in MathML.
|
||||
if (display->mDisplay == StyleDisplay::Contents &&
|
||||
!aContent->IsMathMLElement()) {
|
||||
!foundMathMLData) {
|
||||
if (!GetDisplayContentsStyleFor(aContent)) {
|
||||
MOZ_ASSERT(styleContext->GetPseudo() || !isGeneratedContent,
|
||||
"Should have had pseudo type");
|
||||
|
@ -399,6 +399,7 @@ nsHtml5TreeBuilder::characters(const char16_t* buf,
|
||||
continue;
|
||||
}
|
||||
}
|
||||
MOZ_FALLTHROUGH_ASSERT("unreachable");
|
||||
}
|
||||
default: {
|
||||
switch (mode) {
|
||||
|
@ -1162,4 +1162,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
|
||||
|
||||
static const int32_t kUnknownId = -1;
|
||||
|
||||
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1526066279722000);
|
||||
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1526152836006000);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -8,7 +8,7 @@
|
||||
/*****************************************************************************/
|
||||
|
||||
#include <stdint.h>
|
||||
const PRTime gPreloadListExpirationTime = INT64_C(1528485467104000);
|
||||
const PRTime gPreloadListExpirationTime = INT64_C(1528572023795000);
|
||||
%%
|
||||
0-1.party, 1
|
||||
0.me.uk, 1
|
||||
@ -903,7 +903,6 @@ adentalsolution.com, 1
|
||||
adevel.eu, 1
|
||||
adhd-inattentive.com, 1
|
||||
adhesivelaundry.co.uk, 1
|
||||
adhigamindia.com, 1
|
||||
adhoc.is, 1
|
||||
adigitali.biz, 1
|
||||
adimaja.com, 1
|
||||
@ -1218,6 +1217,7 @@ airnow.gov, 1
|
||||
airpbx.com, 1
|
||||
airplay-inflatable-hire.co.uk, 1
|
||||
airplayradio.nl, 1
|
||||
airportlimototoronto.com, 1
|
||||
airpurifierproductsonline.com, 1
|
||||
airsoft.ch, 1
|
||||
airtimefranchise.com, 1
|
||||
@ -1512,7 +1512,7 @@ alpha.ch, 1
|
||||
alpha88uat.com, 1
|
||||
alphabetsigns.com, 1
|
||||
alphabouncycastles.co.uk, 1
|
||||
alphabrock.cn, 1
|
||||
alphabrock.cn, 0
|
||||
alphachat.net, 1
|
||||
alphafiduciaryservices.ch, 1
|
||||
alphahunks.com, 0
|
||||
@ -1568,6 +1568,7 @@ alumni-kusa.jp, 1
|
||||
alunonaescola.com.br, 1
|
||||
alupferd.de, 1
|
||||
aluroof.eu, 1
|
||||
alvcs.com, 1
|
||||
alviano.com, 1
|
||||
alvicom.hu, 1
|
||||
alvosec.com, 1
|
||||
@ -2778,6 +2779,7 @@ awin.la, 1
|
||||
awk.tw, 1
|
||||
awksolutions.com, 1
|
||||
awningsaboveus.com, 1
|
||||
awomaninherprime.com, 1
|
||||
awsmdev.de, 1
|
||||
awxg.com, 1
|
||||
awxg.org, 1
|
||||
@ -4925,7 +4927,6 @@ bugginslab.co.uk, 1
|
||||
bugs.chromium.org, 1
|
||||
bugsmashed.com, 1
|
||||
bugtrack.co.uk, 1
|
||||
bugwie.com, 1
|
||||
bugzil.la, 1
|
||||
bugzilla.mozilla.org, 1
|
||||
buiko.com, 1
|
||||
@ -5621,7 +5622,6 @@ cdu-wilgersdorf.de, 1
|
||||
ce-pimkie.fr, 1
|
||||
cebz.org, 1
|
||||
ceciliacolombara.com, 1
|
||||
cecilwalker.com.au, 1
|
||||
cecipu.gob.cl, 1
|
||||
ced-services.nl, 1
|
||||
cedriccassimo.ch, 1
|
||||
@ -5787,7 +5787,6 @@ 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
|
||||
@ -7226,7 +7225,6 @@ croixblanche-haguenau.fr, 1
|
||||
cronix.cc, 1
|
||||
cronologie.de, 1
|
||||
cronometer.com, 1
|
||||
crop-alert.com, 1
|
||||
croquette.net, 1
|
||||
crosbug.com, 1
|
||||
crose.co.uk, 1
|
||||
@ -7563,7 +7561,6 @@ d-bood.site, 0
|
||||
d-designerin.de, 1
|
||||
d-loop.de, 1
|
||||
d-msg.com, 1
|
||||
d-parts24.de, 1
|
||||
d-quantum.com, 1
|
||||
d-toys.com.ua, 1
|
||||
d-training.de, 1
|
||||
@ -8266,7 +8263,6 @@ dethemium.com, 1
|
||||
dethikiemtra.com, 1
|
||||
detoxetmoi.com, 1
|
||||
detoxsinutritie.ro, 1
|
||||
detroit-english.de, 1
|
||||
detroitstylepizza.com, 1
|
||||
detroitzoo.org, 1
|
||||
detskysad.com, 1
|
||||
@ -8461,6 +8457,7 @@ diffnow.com, 1
|
||||
difoosion.com, 1
|
||||
digcit.org, 1
|
||||
digdata.de, 1
|
||||
diggable.co, 1
|
||||
dighans.com, 1
|
||||
digiarc.net, 1
|
||||
digibild.ch, 1
|
||||
@ -8805,7 +8802,6 @@ dogworld.com.br, 1
|
||||
dohanews.co, 1
|
||||
dojifish.space, 1
|
||||
dokan-e.com, 1
|
||||
dokelio-idf.fr, 1
|
||||
doku-gilde.de, 1
|
||||
dokuboard.com, 1
|
||||
dokuraum.de, 1
|
||||
@ -9252,6 +9248,7 @@ dustygroove.com, 1
|
||||
dustyspokesbnb.ca, 1
|
||||
dutch.desi, 1
|
||||
dutch1.nl, 1
|
||||
dutchessuganda.com, 1
|
||||
dutchrank.nl, 1
|
||||
dutchwanderers.nl, 1
|
||||
dutchweballiance.nl, 1
|
||||
@ -9515,7 +9512,6 @@ eddesign.ch, 1
|
||||
eddmil.es, 1
|
||||
eddokloosterman.com, 1
|
||||
edeca.net, 1
|
||||
edehsa.com, 1
|
||||
edenmal.net, 1
|
||||
edenvalerubbleremovals.co.za, 1
|
||||
edesseglabor.hu, 1
|
||||
@ -10204,7 +10200,6 @@ eroimatome.com, 1
|
||||
eroma.com.au, 1
|
||||
eron.info, 1
|
||||
erotic4me.ch, 1
|
||||
eroticforce.com, 1
|
||||
erotpo.cz, 1
|
||||
erp-band.ru, 1
|
||||
erp.band, 1
|
||||
@ -10611,7 +10606,6 @@ everydaywot.com, 1
|
||||
everydaywp.com, 1
|
||||
everyex.com, 1
|
||||
everygayporn.com, 1
|
||||
everygayporn.xyz, 1
|
||||
everymove.org, 1
|
||||
everytruckjob.com, 1
|
||||
everytrycounts.gov, 1
|
||||
@ -10878,7 +10872,6 @@ faithindemocracy.eu, 1
|
||||
faithmissionaries.com, 1
|
||||
faithwatch.org, 1
|
||||
faixaazul.com, 1
|
||||
faizan.net, 1
|
||||
fakeapple.nl, 1
|
||||
fakerli.com, 1
|
||||
fakti.bg, 1
|
||||
@ -12237,6 +12230,7 @@ gambetti.fr, 1
|
||||
gambit.pro, 1
|
||||
gambitboard.com, 1
|
||||
gambitnash.co.uk, 1
|
||||
gambitnash.com, 1
|
||||
gambitprint.com, 1
|
||||
gamblersgaming.eu, 1
|
||||
game-files.net, 0
|
||||
@ -12528,6 +12522,7 @@ geoscope.ch, 1
|
||||
geosphereservices.com, 1
|
||||
geotab.com, 1
|
||||
geraintwhite.co.uk, 1
|
||||
gerald-zojer.com, 1
|
||||
geraldsonrealty.com, 1
|
||||
gerardobsd.com, 1
|
||||
gerardozamudio.mx, 1
|
||||
@ -13273,7 +13268,6 @@ gtdgo.com, 1
|
||||
gtmasterclub.it, 0
|
||||
gtmetrix.com, 1
|
||||
gtopala.com, 1
|
||||
gtour.info, 1
|
||||
gtravers-basketmaker.co.uk, 1
|
||||
gtts.space, 1
|
||||
guardian360.nl, 1
|
||||
@ -14123,6 +14117,7 @@ hirevets.gov, 1
|
||||
hirezzportal.com, 1
|
||||
hirotaka.org, 1
|
||||
hirte-digital.de, 1
|
||||
hirzaconsult.ro, 1
|
||||
hisbrucker.net, 1
|
||||
hisnet.de, 1
|
||||
hispanic.dating, 1
|
||||
@ -14986,6 +14981,7 @@ imaginetricks.com, 1
|
||||
imagr.io, 1
|
||||
imanageproducts.uk, 1
|
||||
imanesdeviaje.com, 1
|
||||
imanhearts.com, 1
|
||||
imanolbarba.net, 1
|
||||
imanudin.net, 1
|
||||
imarkethost.co.uk, 1
|
||||
@ -15440,6 +15436,7 @@ investir.ch, 1
|
||||
investor.gov, 1
|
||||
investorforms.com, 1
|
||||
investorloanshub.com, 1
|
||||
investpay.ru, 1
|
||||
invinsec.com, 1
|
||||
invioinc.com, 1
|
||||
invis.net, 1
|
||||
@ -16521,6 +16518,7 @@ judc-ge.ch, 1
|
||||
judge2020.com, 1
|
||||
judge2020.me, 1
|
||||
judoprodeti.cz, 1
|
||||
judosaintdenis.fr, 0
|
||||
juegosycodigos.es, 1
|
||||
juegosycodigos.mx, 1
|
||||
juergen-elbert.de, 1
|
||||
@ -16669,6 +16667,7 @@ k258059.net, 1
|
||||
k2mts.org, 1
|
||||
k33k00.com, 1
|
||||
k38.cc, 1
|
||||
k3nny.fr, 0
|
||||
k4r.ru, 1
|
||||
k82.org, 1
|
||||
k8r.eu, 1
|
||||
@ -16676,7 +16675,6 @@ k9swx.com, 1
|
||||
kaamoscreations.com, 1
|
||||
kaanduman.com, 1
|
||||
kaangenc.me, 1
|
||||
kaasbijwijn.nl, 1
|
||||
kaatha-kamrater.se, 1
|
||||
kab-s.de, 1
|
||||
kabashop.com.br, 1
|
||||
@ -16754,7 +16752,6 @@ kanagawachuo-hospital.jp, 1
|
||||
kanal-schaefer.de, 1
|
||||
kanal-tv-haensch.de, 1
|
||||
kanar.nl, 1
|
||||
kancolle.me, 1
|
||||
kandalife.com, 1
|
||||
kandec.co.jp, 1
|
||||
kanecastles.com, 1
|
||||
@ -17661,6 +17658,7 @@ kuroinu.jp, 1
|
||||
kuroisalva.xyz, 0
|
||||
kurona.ga, 1
|
||||
kuronekogaro.com, 1
|
||||
kurrietv.nl, 1
|
||||
kurschies.de, 1
|
||||
kursprogramisty.pl, 1
|
||||
kurswahl-online.de, 1
|
||||
@ -18494,6 +18492,7 @@ limereslaw.com, 1
|
||||
limitededitioncomputers.com, 1
|
||||
limitededitionsolutions.com, 1
|
||||
limn.me, 1
|
||||
limoairporttoronto.net, 1
|
||||
limousineservicezurich.com, 1
|
||||
limpid.nl, 1
|
||||
limules.ch, 1
|
||||
@ -19319,7 +19318,6 @@ mainston.com, 1
|
||||
mainzelmaennchen.net, 1
|
||||
maisgasolina.com, 1
|
||||
maisonpaulmier.fr, 1
|
||||
maispa.com, 1
|
||||
maisretorno.com, 1
|
||||
maisvitaminas.com.br, 1
|
||||
maitrechaton.fr, 1
|
||||
@ -19567,7 +19565,6 @@ marketing.limited, 1
|
||||
marketingco.nl, 1
|
||||
marketingdesignu.cz, 1
|
||||
marketingromania.ro, 1
|
||||
marketingvirtuales.com, 1
|
||||
marketio.co, 1
|
||||
marketizare.ro, 1
|
||||
marketnsight.com, 1
|
||||
@ -20873,7 +20870,6 @@ moojp.co.jp, 1
|
||||
moolah.rocks, 1
|
||||
moonagic.com, 1
|
||||
moonbot.io, 1
|
||||
moonchart.co.uk, 1
|
||||
moondrop.org, 1
|
||||
moonkin.eu, 1
|
||||
moonmelo.com, 1
|
||||
@ -21021,7 +21017,7 @@ mplusm.eu, 1
|
||||
mpn.poker, 1
|
||||
mpnpokertour.com, 1
|
||||
mpodraza.pl, 1
|
||||
mpreserver.com, 0
|
||||
mpreserver.com, 1
|
||||
mpserver12.org, 1
|
||||
mpsgarage.com.au, 1
|
||||
mpsoundcraft.com, 1
|
||||
@ -21049,7 +21045,6 @@ mrjooz.com, 1
|
||||
mrkapowski.com, 1
|
||||
mrketolocksmith.com, 1
|
||||
mrknee.gr, 1
|
||||
mrksk.com, 1
|
||||
mrleonardo.com, 1
|
||||
mrliu.me, 1
|
||||
mrmoregame.de, 1
|
||||
@ -21430,6 +21425,7 @@ myproblog.com, 1
|
||||
myptsite.com, 1
|
||||
mypup.nl, 1
|
||||
myrandomtips.com, 1
|
||||
myranicol.com, 1
|
||||
myrealestatemate.com.au, 1
|
||||
myref.net, 1
|
||||
myrekber.co.id, 1
|
||||
@ -22100,7 +22096,6 @@ ngiemboon.net, 1
|
||||
nginxyii.tk, 1
|
||||
ngndn.jp, 1
|
||||
ngocuong.net, 1
|
||||
ngtoys.com.br, 1
|
||||
ngvf.de, 1
|
||||
ngxpkg.com, 1
|
||||
nhccnews.org, 1
|
||||
@ -23677,6 +23672,7 @@ paulrobertlloyd.com, 1
|
||||
paulrotter.de, 1
|
||||
paulrudge.codes, 1
|
||||
paulschreiber.com, 1
|
||||
paulscustomauto.com, 1
|
||||
paulshir.com, 1
|
||||
paulshir.is, 1
|
||||
paulswartz.net, 1
|
||||
@ -23928,6 +23924,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
|
||||
@ -24633,6 +24630,7 @@ postdarwinism.com, 1
|
||||
postdeck.de, 1
|
||||
posteo.de, 0
|
||||
posters.win, 1
|
||||
posterspy.com, 1
|
||||
postfalls-naturopathic.com, 1
|
||||
postfinance.ch, 1
|
||||
postmatescode.com, 1
|
||||
@ -24809,6 +24807,7 @@ primordialsnooze.com, 1
|
||||
primotilesandbathrooms.co.uk, 1
|
||||
princeagency.com, 1
|
||||
princeofwhales.com, 1
|
||||
princesparktouch.com, 1
|
||||
princessbackpack.de, 1
|
||||
princessmargaretlotto.com, 1
|
||||
principalstest.com, 1
|
||||
@ -25052,6 +25051,7 @@ 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
|
||||
@ -25763,7 +25763,6 @@ reddingo.jp, 1
|
||||
reddingo.nl, 1
|
||||
reddingo.nz, 1
|
||||
reddingsbrigade-zwolle.nl, 1
|
||||
reddiseals.com, 1
|
||||
reddit2kindle.com, 1
|
||||
reddraggone9.com, 1
|
||||
rede-reim.de, 1
|
||||
@ -26158,7 +26157,6 @@ rijsinkunst.nl, 1
|
||||
rile5.com, 1
|
||||
rileyevans.co.uk, 1
|
||||
rimax.vn, 1
|
||||
rimcountrymuseum.org, 1
|
||||
rimeto.io, 1
|
||||
rimo.site, 1
|
||||
ringingliberty.com, 1
|
||||
@ -27605,6 +27603,7 @@ servepublic.com, 1
|
||||
servepublic.org, 1
|
||||
server-bg.net, 1
|
||||
server-daten.de, 1
|
||||
server-datenrettung.de, 1
|
||||
server-essentials.com, 1
|
||||
server-eye.de, 1
|
||||
server.pk, 1
|
||||
@ -29379,6 +29378,7 @@ stonewuu.com, 1
|
||||
stony.com, 1
|
||||
stonystratford.org, 1
|
||||
stopakwardhandshakes.org, 1
|
||||
stopbreakupnow.org, 1
|
||||
stopbullying.gov, 1
|
||||
stopfraud.gov, 1
|
||||
stopthethyroidmadness.com, 1
|
||||
@ -29594,6 +29594,7 @@ sundayfundayjapan.com, 1
|
||||
suneilpatel.com, 1
|
||||
sunfeathers.net, 1
|
||||
sunfireshop.com.br, 1
|
||||
sunflyer.cn, 0
|
||||
sunfox.cz, 1
|
||||
sunfulong.blog, 1
|
||||
sunfulong.me, 1
|
||||
@ -29965,7 +29966,6 @@ takeitoffline.co.uk, 1
|
||||
takemoto-ped.com, 1
|
||||
taken.pl, 1
|
||||
takeshifujimoto.com, 1
|
||||
takinet.kr, 1
|
||||
takk.pl, 1
|
||||
takkaaaaa.com, 1
|
||||
takusan.ru, 1
|
||||
@ -30535,7 +30535,6 @@ thediscovine.com, 1
|
||||
thedocumentrefinery.com, 1
|
||||
thedominatorsclan.com, 1
|
||||
thedreamtravelgroup.co.uk, 1
|
||||
thedrinks.co, 1
|
||||
thedronechart.com, 1
|
||||
thedrunkencabbage.com, 1
|
||||
thedutchmarketers.com, 1
|
||||
@ -31020,7 +31019,6 @@ tkn.tokyo, 1
|
||||
tkts.cl, 1
|
||||
tkusano.jp, 1
|
||||
tkw01536.de, 1
|
||||
tlach.cz, 1
|
||||
tlca.org, 1
|
||||
tlcnet.info, 1
|
||||
tlehseasyads.com, 1
|
||||
@ -31293,6 +31291,7 @@ toretfaction.net, 1
|
||||
tormentedradio.com, 0
|
||||
torn1.se, 1
|
||||
torngalaxy.com, 1
|
||||
torontocorporatelimo.services, 1
|
||||
torproject.org, 0
|
||||
torprojects.com, 1
|
||||
torquato.de, 0
|
||||
@ -32652,6 +32651,7 @@ vidiproject.com, 1
|
||||
vidister.de, 1
|
||||
viditut.com, 1
|
||||
vidkovaomara.si, 1
|
||||
vidlyoficial.com, 1
|
||||
vieaw.com, 1
|
||||
vieclam24h.vn, 0
|
||||
viekelis.lt, 0
|
||||
@ -33157,7 +33157,6 @@ 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
|
||||
@ -33268,7 +33267,6 @@ webfilings-eu-mirror.appspot.com, 1
|
||||
webfilings-eu.appspot.com, 1
|
||||
webfilings-mirror-hrd.appspot.com, 1
|
||||
webfilings.appspot.com, 1
|
||||
webfox.com.br, 1
|
||||
webgarten.ch, 1
|
||||
webgears.com, 1
|
||||
webhackspro.com, 1
|
||||
@ -34283,7 +34281,6 @@ xicreative.net, 1
|
||||
xight.org, 1
|
||||
xilef.org, 1
|
||||
xilegames.com, 1
|
||||
xiliant.com, 1
|
||||
xilkoi.net, 1
|
||||
ximbo.net, 1
|
||||
xin-in.com, 1
|
||||
@ -34306,7 +34303,6 @@ xlaff.com, 1
|
||||
xlan.be, 1
|
||||
xlange.com, 1
|
||||
xlboo.com, 1
|
||||
xlfblog.com, 1
|
||||
xlinar.com, 1
|
||||
xmedius.ca, 1
|
||||
xmedius.com, 0
|
||||
@ -34950,7 +34946,7 @@ zbp.at, 0
|
||||
zbrane-doplnky.cz, 1
|
||||
zby.io, 1
|
||||
zbyga.cz, 1
|
||||
zbyte.it, 0
|
||||
zbyte.it, 1
|
||||
zcarot.com, 1
|
||||
zcarrot.com, 1
|
||||
zcgram.com, 1
|
||||
@ -35034,6 +35030,7 @@ zh.search.yahoo.com, 0
|
||||
zhang-hao.com, 1
|
||||
zhang.nz, 1
|
||||
zhangfangzhou.com, 1
|
||||
zhangge.net, 1
|
||||
zhanghao.me, 1
|
||||
zhangsidan.com, 1
|
||||
zhangsir.net, 1
|
||||
@ -35200,6 +35197,7 @@ zwerimex.com, 1
|
||||
zwollemag.nl, 1
|
||||
zwy.ch, 1
|
||||
zwy.me, 0
|
||||
zx6rninja.de, 1
|
||||
zx7r.de, 1
|
||||
zxity.co.uk, 1
|
||||
zxity.ltd, 1
|
||||
|
@ -158,6 +158,9 @@ class Theme {
|
||||
case "toolbar_top_separator":
|
||||
case "toolbar_bottom_separator":
|
||||
case "toolbar_vertical_separator":
|
||||
case "button_background":
|
||||
case "button_background_hover":
|
||||
case "button_background_active":
|
||||
this.lwtStyles[color] = cssColor;
|
||||
break;
|
||||
}
|
||||
|
@ -144,6 +144,18 @@
|
||||
"icons_attention": {
|
||||
"$ref": "ThemeColor",
|
||||
"optional": true
|
||||
},
|
||||
"button_background": {
|
||||
"$ref": "ThemeColor",
|
||||
"optional": true
|
||||
},
|
||||
"button_background_hover": {
|
||||
"$ref": "ThemeColor",
|
||||
"optional": true
|
||||
},
|
||||
"button_background_active": {
|
||||
"$ref": "ThemeColor",
|
||||
"optional": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": { "$ref": "UnrecognizedProperty" }
|
||||
|
@ -19,3 +19,4 @@ support-files =
|
||||
[browser_ext_themes_toolbar_fields.js]
|
||||
[browser_ext_themes_toolbars.js]
|
||||
[browser_ext_themes_toolbarbutton_icons.js]
|
||||
[browser_ext_themes_toolbarbutton_colors.js]
|
||||
|
@ -0,0 +1,65 @@
|
||||
"use strict";
|
||||
|
||||
Cu.importGlobalProperties(["InspectorUtils"]);
|
||||
|
||||
// This test checks whether applied WebExtension themes that attempt to change
|
||||
// the button background color properties are applied correctly.
|
||||
|
||||
add_task(async function test_button_background_properties() {
|
||||
const BUTTON_BACKGROUND = "#DEDEDE";
|
||||
const BUTTON_BACKGROUND_ACTIVE = "#FFFFFF";
|
||||
const BUTTON_BACKGROUND_HOVER = "#59CBE8";
|
||||
|
||||
let extension = ExtensionTestUtils.loadExtension({
|
||||
manifest: {
|
||||
"theme": {
|
||||
"images": {
|
||||
"headerURL": "image1.png",
|
||||
},
|
||||
"colors": {
|
||||
"accentcolor": ACCENT_COLOR,
|
||||
"textcolor": TEXT_COLOR,
|
||||
"button_background": BUTTON_BACKGROUND,
|
||||
"button_background_active": BUTTON_BACKGROUND_ACTIVE,
|
||||
"button_background_hover": BUTTON_BACKGROUND_HOVER,
|
||||
},
|
||||
},
|
||||
},
|
||||
files: {
|
||||
"image1.png": BACKGROUND,
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
await extension.startup();
|
||||
|
||||
let toolbarButton = document.querySelector("#home-button");
|
||||
let toolbarButtonIcon = document.getAnonymousElementByAttribute(toolbarButton, "class", "toolbarbutton-icon");
|
||||
let toolbarButtonIconCS = window.getComputedStyle(toolbarButtonIcon);
|
||||
|
||||
Assert.equal(
|
||||
toolbarButtonIconCS.getPropertyValue("background-color"),
|
||||
`rgb(${hexToRGB(BUTTON_BACKGROUND).join(", ")})`,
|
||||
"Toolbar button background is set."
|
||||
);
|
||||
|
||||
InspectorUtils.addPseudoClassLock(toolbarButton, ":hover");
|
||||
|
||||
Assert.equal(
|
||||
toolbarButtonIconCS.getPropertyValue("background-color"),
|
||||
`rgb(${hexToRGB(BUTTON_BACKGROUND_HOVER).join(", ")})`,
|
||||
"Toolbar button hover background is set."
|
||||
);
|
||||
|
||||
InspectorUtils.addPseudoClassLock(toolbarButton, ":active");
|
||||
|
||||
Assert.equal(
|
||||
toolbarButtonIconCS.getPropertyValue("background-color"),
|
||||
`rgb(${hexToRGB(BUTTON_BACKGROUND_ACTIVE).join(", ")})`,
|
||||
"Toolbar button active background is set!"
|
||||
);
|
||||
|
||||
InspectorUtils.clearPseudoClassLocks(toolbarButton);
|
||||
|
||||
await extension.unload();
|
||||
});
|
@ -30,6 +30,9 @@ const kCSSVarsMap = new Map([
|
||||
["--toolbox-border-bottom-color", "toolbar_bottom_separator"],
|
||||
["--lwt-toolbarbutton-icon-fill", "icon_color"],
|
||||
["--lwt-toolbarbutton-icon-fill-attention", "icon_attention_color"],
|
||||
["--lwt-toolbarbutton-background", "button_background"],
|
||||
["--lwt-toolbarbutton-hover-background", "button_background_hover"],
|
||||
["--lwt-toolbarbutton-active-background", "button_background_active"],
|
||||
]);
|
||||
|
||||
this.LightweightThemeConsumer =
|
||||
|
Loading…
Reference in New Issue
Block a user