mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-31 19:47:32 +09:00
Merge remote-tracking branch 'origin/tracking' into custom
This commit is contained in:
commit
33981efb44
15 changed files with 231 additions and 70 deletions
|
|
@ -39,12 +39,24 @@
|
||||||
display: -moz-box;
|
display: -moz-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-label[pinned] {
|
.tab-label {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-label-container {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-label-container[pinned] {
|
||||||
width: 0;
|
width: 0;
|
||||||
margin-left: 0 !important;
|
}
|
||||||
margin-right: 0 !important;
|
|
||||||
padding-left: 0 !important;
|
.tab-label-container[textoverflow]:not([pinned]) {
|
||||||
padding-right: 0 !important;
|
mask-image: linear-gradient(to left, transparent, black 1em);
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-label-container[textoverflow]:not([pinned]):-moz-locale-dir(rtl) {
|
||||||
|
mask-image: linear-gradient(to right, transparent, black 1em);
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-stack {
|
.tab-stack {
|
||||||
|
|
|
||||||
|
|
@ -1400,8 +1400,7 @@
|
||||||
<body>
|
<body>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
aTab.label = this.mStringBundle.getString("tabs.connecting");
|
aTab.label = this.mStringBundle.getString("tabs.connecting");
|
||||||
aTab.crop = "end";
|
this._tabAttrModified(aTab, ["label"]);
|
||||||
this._tabAttrModified(aTab, ["label", "crop"]);
|
|
||||||
]]>
|
]]>
|
||||||
</body>
|
</body>
|
||||||
</method>
|
</method>
|
||||||
|
|
@ -1411,7 +1410,6 @@
|
||||||
<body>
|
<body>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
var browser = this.getBrowserForTab(aTab);
|
var browser = this.getBrowserForTab(aTab);
|
||||||
var crop = "end";
|
|
||||||
var title = browser.contentTitle;
|
var title = browser.contentTitle;
|
||||||
|
|
||||||
if (!title) {
|
if (!title) {
|
||||||
|
|
@ -1433,9 +1431,6 @@
|
||||||
.getService(Components.interfaces.nsITextToSubURI);
|
.getService(Components.interfaces.nsITextToSubURI);
|
||||||
title = textToSubURI.unEscapeNonAsciiURI(characterSet, title);
|
title = textToSubURI.unEscapeNonAsciiURI(characterSet, title);
|
||||||
} catch (ex) { /* Do nothing. */ }
|
} catch (ex) { /* Do nothing. */ }
|
||||||
|
|
||||||
crop = "center";
|
|
||||||
|
|
||||||
} else if (aTab.hasAttribute("customizemode")) {
|
} else if (aTab.hasAttribute("customizemode")) {
|
||||||
let brandBundle = document.getElementById("bundle_brand");
|
let brandBundle = document.getElementById("bundle_brand");
|
||||||
let brandShortName = brandBundle.getString("brandShortName");
|
let brandShortName = brandBundle.getString("brandShortName");
|
||||||
|
|
@ -1445,13 +1440,11 @@
|
||||||
title = this.mStringBundle.getString("tabs.emptyTabTitle");
|
title = this.mStringBundle.getString("tabs.emptyTabTitle");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aTab.label == title &&
|
if (aTab.label == title)
|
||||||
aTab.crop == crop)
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
aTab.label = title;
|
aTab.label = title;
|
||||||
aTab.crop = crop;
|
this._tabAttrModified(aTab, ["label"]);
|
||||||
this._tabAttrModified(aTab, ["label", "crop"]);
|
|
||||||
|
|
||||||
if (aTab.selected)
|
if (aTab.selected)
|
||||||
this.updateTitlebar();
|
this.updateTitlebar();
|
||||||
|
|
@ -2151,7 +2144,6 @@
|
||||||
ContextualIdentityService.setTabStyle(t);
|
ContextualIdentityService.setTabStyle(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
t.setAttribute("crop", "end");
|
|
||||||
t.setAttribute("onerror", "this.removeAttribute('image');");
|
t.setAttribute("onerror", "this.removeAttribute('image');");
|
||||||
|
|
||||||
if (aSkipBackgroundNotify) {
|
if (aSkipBackgroundNotify) {
|
||||||
|
|
@ -5175,6 +5167,9 @@
|
||||||
|
|
||||||
<handlers>
|
<handlers>
|
||||||
<handler event="underflow" phase="capturing"><![CDATA[
|
<handler event="underflow" phase="capturing"><![CDATA[
|
||||||
|
if (event.target != this)
|
||||||
|
return;
|
||||||
|
|
||||||
if (event.detail == 0)
|
if (event.detail == 0)
|
||||||
return; // Ignore vertical events
|
return; // Ignore vertical events
|
||||||
|
|
||||||
|
|
@ -5190,6 +5185,9 @@
|
||||||
tabs._positionPinnedTabs();
|
tabs._positionPinnedTabs();
|
||||||
]]></handler>
|
]]></handler>
|
||||||
<handler event="overflow"><![CDATA[
|
<handler event="overflow"><![CDATA[
|
||||||
|
if (event.target != this)
|
||||||
|
return;
|
||||||
|
|
||||||
if (event.detail == 0)
|
if (event.detail == 0)
|
||||||
return; // Ignore vertical events
|
return; // Ignore vertical events
|
||||||
|
|
||||||
|
|
@ -5243,7 +5241,6 @@
|
||||||
|
|
||||||
var tab = this.firstChild;
|
var tab = this.firstChild;
|
||||||
tab.label = this.tabbrowser.mStringBundle.getString("tabs.emptyTabTitle");
|
tab.label = this.tabbrowser.mStringBundle.getString("tabs.emptyTabTitle");
|
||||||
tab.setAttribute("crop", "end");
|
|
||||||
tab.setAttribute("onerror", "this.removeAttribute('image');");
|
tab.setAttribute("onerror", "this.removeAttribute('image');");
|
||||||
|
|
||||||
window.addEventListener("resize", this, false);
|
window.addEventListener("resize", this, false);
|
||||||
|
|
@ -6545,10 +6542,15 @@
|
||||||
anonid="overlay-icon"
|
anonid="overlay-icon"
|
||||||
class="tab-icon-overlay"
|
class="tab-icon-overlay"
|
||||||
role="presentation"/>
|
role="presentation"/>
|
||||||
<xul:label flex="1"
|
<xul:hbox class="tab-label-container"
|
||||||
xbl:inherits="value=label,crop,accesskey,fadein,pinned,selected=visuallyselected,attention"
|
xbl:inherits="pinned,selected=visuallyselected"
|
||||||
class="tab-text tab-label"
|
onoverflow="this.setAttribute('textoverflow', 'true');"
|
||||||
|
onunderflow="this.removeAttribute('textoverflow');"
|
||||||
|
flex="1">
|
||||||
|
<xul:label class="tab-text tab-label"
|
||||||
|
xbl:inherits="xbl:text=label,accesskey,fadein,pinned,selected=visuallyselected,attention"
|
||||||
role="presentation"/>
|
role="presentation"/>
|
||||||
|
</xul:hbox>
|
||||||
<xul:image xbl:inherits="soundplaying,soundplaying-scheduledremoval,pinned,muted,blocked,selected=visuallyselected"
|
<xul:image xbl:inherits="soundplaying,soundplaying-scheduledremoval,pinned,muted,blocked,selected=visuallyselected"
|
||||||
anonid="soundplaying-icon"
|
anonid="soundplaying-icon"
|
||||||
class="tab-icon-sound"
|
class="tab-icon-sound"
|
||||||
|
|
@ -6925,7 +6927,7 @@
|
||||||
<parameter name="aTab"/>
|
<parameter name="aTab"/>
|
||||||
<body><![CDATA[
|
<body><![CDATA[
|
||||||
aMenuitem.setAttribute("label", aTab.label);
|
aMenuitem.setAttribute("label", aTab.label);
|
||||||
aMenuitem.setAttribute("crop", aTab.getAttribute("crop"));
|
aMenuitem.setAttribute("crop", "end");
|
||||||
|
|
||||||
if (aTab.hasAttribute("busy")) {
|
if (aTab.hasAttribute("busy")) {
|
||||||
aMenuitem.setAttribute("busy", aTab.getAttribute("busy"));
|
aMenuitem.setAttribute("busy", aTab.getAttribute("busy"));
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,23 @@
|
||||||
#define GUAO_PREF general.useragent.override
|
#define GUAO_PREF general.useragent.override
|
||||||
|
|
||||||
#define GRE_VERSION @MOZILLA_UAVERSION_U@
|
#define UXP_VERSION @MOZILLA_UAVERSION_U@
|
||||||
#define GRE_VERSION_SLICE Goanna/@GRE_VERSION@
|
#define UXP_VERSION_SLICE Goanna/@UXP_VERSION@
|
||||||
#define GRE_DATE_SLICE Goanna/20170101
|
#define UXP_DATE_SLICE Goanna/20170101
|
||||||
#define APP_SLICE Basilisk/@MOZ_APP_VERSION@
|
#define APP_SLICE Basilisk/@MOZ_APP_VERSION@
|
||||||
|
|
||||||
#define GK_VERSION 52.9
|
#define GK_VERSION 52.9
|
||||||
#define GK_SLICE Gecko/20100101
|
#define GK_SLICE Gecko/20100101
|
||||||
#define FX_SLICE Firefox/@GK_VERSION@
|
#define FX_SLICE Firefox/@GK_VERSION@
|
||||||
|
|
||||||
|
#define PALE_MOON_VERSION 32.0.1
|
||||||
|
#define PALE_MOON_SLICE PaleMoon/@PALE_MOON_VERSION@
|
||||||
|
|
||||||
// %OS_SLICE% macro is resolved at runtime, see MoonchildProductions/UXP/issues/1473
|
// %OS_SLICE% macro is resolved at runtime, see MoonchildProductions/UXP/issues/1473
|
||||||
|
|
||||||
// Special-case AMO
|
// Special-case AMO
|
||||||
// We send the native UA slice now, since they no longer offer any compatible extensions for us.
|
// We send the native UA slice now, since they no longer offer any compatible extensions for us.
|
||||||
// This will result in an "only with Firefox" message which suits us fine, because it's the truth.
|
// This will result in an "only with Firefox" message which suits us fine, because it's the truth.
|
||||||
pref("@GUAO_PREF@.addons.mozilla.org","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @APP_SLICE@");
|
pref("@GUAO_PREF@.addons.mozilla.org","Mozilla/5.0 (%OS_SLICE% rv:@UXP_VERSION@) @UXP_DATE_SLICE@ @APP_SLICE@");
|
||||||
|
|
||||||
// Required for domains that are unresponsive to requests from users (or likely to be)
|
// Required for domains that are unresponsive to requests from users (or likely to be)
|
||||||
pref("@GUAO_PREF@.aol.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Basilisk)");
|
pref("@GUAO_PREF@.aol.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Basilisk)");
|
||||||
|
|
@ -22,7 +25,7 @@ pref("@GUAO_PREF@.bing.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@
|
||||||
pref("@GUAO_PREF@.chase.com","Mozilla/5.0 (%OS_SLICE% rv:79.0) @GK_SLICE@ Firefox/79.0");
|
pref("@GUAO_PREF@.chase.com","Mozilla/5.0 (%OS_SLICE% rv:79.0) @GK_SLICE@ Firefox/79.0");
|
||||||
pref("@GUAO_PREF@.dropbox.com","Mozilla/5.0 (%OS_SLICE% rv:68.9) @GK_SLICE@ Firefox/68.9 (Basilisk)");
|
pref("@GUAO_PREF@.dropbox.com","Mozilla/5.0 (%OS_SLICE% rv:68.9) @GK_SLICE@ Firefox/68.9 (Basilisk)");
|
||||||
pref("@GUAO_PREF@.google.com","Mozilla/5.0 (%OS_SLICE% rv:71.0) @GK_SLICE@ Firefox/71.0 @APP_SLICE@");
|
pref("@GUAO_PREF@.google.com","Mozilla/5.0 (%OS_SLICE% rv:71.0) @GK_SLICE@ Firefox/71.0 @APP_SLICE@");
|
||||||
pref("@GUAO_PREF@.googlevideos.com","Mozilla/5.0 (%OS_SLICE% rv:38.9) @GK_SLICE@ @GRE_VERSION_SLICE@ Firefox/38.9 @APP_SLICE@");
|
pref("@GUAO_PREF@.googlevideos.com","Mozilla/5.0 (%OS_SLICE% rv:38.9) @GK_SLICE@ @UXP_VERSION_SLICE@ Firefox/38.9 @APP_SLICE@");
|
||||||
pref("@GUAO_PREF@.gstatic.com","Mozilla/5.0 (%OS_SLICE% rv:71.0) @GK_SLICE@ Firefox/71.0 @APP_SLICE@");
|
pref("@GUAO_PREF@.gstatic.com","Mozilla/5.0 (%OS_SLICE% rv:71.0) @GK_SLICE@ Firefox/71.0 @APP_SLICE@");
|
||||||
pref("@GUAO_PREF@.kroger.com","Mozilla/5.0 (%OS_SLICE% rv:86.0) @GK_SLICE@ Firefox/86.0 (Basilisk)");
|
pref("@GUAO_PREF@.kroger.com","Mozilla/5.0 (%OS_SLICE% rv:86.0) @GK_SLICE@ Firefox/86.0 (Basilisk)");
|
||||||
pref("@GUAO_PREF@.live.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Basilisk)");
|
pref("@GUAO_PREF@.live.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Basilisk)");
|
||||||
|
|
@ -38,24 +41,23 @@ pref("@GUAO_PREF@.calendar.yahoo.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@)
|
||||||
// For Amazon Prime videos
|
// For Amazon Prime videos
|
||||||
pref("@GUAO_PREF@.www.amazon.com","Mozilla/5.0 (%OS_SLICE% rv:45.9) @GK_SLICE@ Firefox/45.9 (Basilisk)");
|
pref("@GUAO_PREF@.www.amazon.com","Mozilla/5.0 (%OS_SLICE% rv:45.9) @GK_SLICE@ Firefox/45.9 (Basilisk)");
|
||||||
// Soundcloud uses Firefox-exclusive combinations of code. Never pass Firefox slice.
|
// Soundcloud uses Firefox-exclusive combinations of code. Never pass Firefox slice.
|
||||||
pref("@GUAO_PREF@.soundcloud.com","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @APP_SLICE@");
|
pref("@GUAO_PREF@.soundcloud.com","Mozilla/5.0 (%OS_SLICE% rv:@UXP_VERSION@) @UXP_DATE_SLICE@ @APP_SLICE@");
|
||||||
// Daily motion only likes strict Firefox UAs
|
|
||||||
pref("@GUAO_PREF@.dailymotion.com","Mozilla/5.0 (%OS_SLICE% rv:52.0) @GK_SLICE@ Firefox/52.0");
|
|
||||||
pref("@GUAO_PREF@.players.brightcove.net","Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko");
|
pref("@GUAO_PREF@.players.brightcove.net","Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko");
|
||||||
// Google fonts serves physically different fonts to later Firefox versions that render incorrectly unless on Gecko
|
// Google fonts serves physically different fonts to later Firefox versions that render incorrectly unless on Gecko
|
||||||
pref("@GUAO_PREF@.fonts.googleapis.com", "Mozilla/5.0 (%OS_SLICE% rv:61.9) Gecko/20100101 Firefox/61.9");
|
pref("@GUAO_PREF@.fonts.googleapis.com", "Mozilla/5.0 (%OS_SLICE% rv:61.9) Gecko/20100101 Firefox/61.9");
|
||||||
|
|
||||||
// The following requires native mode. Or it blocks.. "too old firefox", breakage, etc.
|
// The following requires native mode. Or it blocks.. "too old firefox", breakage, etc.
|
||||||
pref("@GUAO_PREF@.deviantart.com","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @APP_SLICE@");
|
pref("@GUAO_PREF@.deviantart.com","Mozilla/5.0 (%OS_SLICE% rv:@UXP_VERSION@) @UXP_DATE_SLICE@ @APP_SLICE@");
|
||||||
pref("@GUAO_PREF@.deviantart.net","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @APP_SLICE@");
|
pref("@GUAO_PREF@.deviantart.net","Mozilla/5.0 (%OS_SLICE% rv:@UXP_VERSION@) @UXP_DATE_SLICE@ @APP_SLICE@");
|
||||||
pref("@GUAO_PREF@.altibox.dk","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @APP_SLICE@");
|
pref("@GUAO_PREF@.altibox.dk","Mozilla/5.0 (%OS_SLICE% rv:@UXP_VERSION@) @UXP_DATE_SLICE@ @APP_SLICE@");
|
||||||
pref("@GUAO_PREF@.altibox.no","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @APP_SLICE@");
|
pref("@GUAO_PREF@.altibox.no","Mozilla/5.0 (%OS_SLICE% rv:@UXP_VERSION@) @UXP_DATE_SLICE@ @APP_SLICE@");
|
||||||
pref("@GUAO_PREF@.firefox.com","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @APP_SLICE@");
|
pref("@GUAO_PREF@.firefox.com","Mozilla/5.0 (%OS_SLICE% rv:@UXP_VERSION@) @UXP_DATE_SLICE@ @APP_SLICE@");
|
||||||
pref("@GUAO_PREF@.mozilla.org","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @APP_SLICE@");
|
pref("@GUAO_PREF@.mozilla.org","Mozilla/5.0 (%OS_SLICE% rv:@UXP_VERSION@) @UXP_DATE_SLICE@ @APP_SLICE@");
|
||||||
pref("@GUAO_PREF@.mozilla.com","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @APP_SLICE@");
|
pref("@GUAO_PREF@.mozilla.com","Mozilla/5.0 (%OS_SLICE% rv:@UXP_VERSION@) @UXP_DATE_SLICE@ @APP_SLICE@");
|
||||||
pref("@GUAO_PREF@.github.com","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @APP_SLICE@");
|
pref("@GUAO_PREF@.github.com","Mozilla/5.0 (%OS_SLICE% rv:@UXP_VERSION@) @UXP_DATE_SLICE@ @APP_SLICE@");
|
||||||
pref("@GUAO_PREF@.spotify.com","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @APP_SLICE@");
|
pref("@GUAO_PREF@.spotify.com","Mozilla/5.0 (%OS_SLICE% rv:@UXP_VERSION@) @UXP_DATE_SLICE@ @APP_SLICE@");
|
||||||
pref("@GUAO_PREF@.twitter.com","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @APP_SLICE@");
|
pref("@GUAO_PREF@.twitter.com","Mozilla/5.0 (%OS_SLICE% rv:@UXP_VERSION@) @UXP_DATE_SLICE@ @APP_SLICE@");
|
||||||
|
pref("@GUAO_PREF@.zoho.com","Mozilla/5.0 (%OS_SLICE% rv:@UXP_VERSION@) @UXP_DATE_SLICE@ @APP_SLICE@");
|
||||||
|
|
||||||
// UA-Sniffing domains below have indicated no interest in supporting Basilisk (BOO!)
|
// UA-Sniffing domains below have indicated no interest in supporting Basilisk (BOO!)
|
||||||
pref("@GUAO_PREF@.humblebundle.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Basilisk)");
|
pref("@GUAO_PREF@.humblebundle.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Basilisk)");
|
||||||
|
|
@ -69,7 +71,7 @@ pref("@GUAO_PREF@.mewe.com", "Mozilla/5.0 (%OS_SLICE% rv:102.0) Gecko/20100101 F
|
||||||
// UA-sniffing domains that are "app/vendor-specific" and do not like Basilisk
|
// UA-sniffing domains that are "app/vendor-specific" and do not like Basilisk
|
||||||
pref("@GUAO_PREF@.web.whatsapp.com","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36");
|
pref("@GUAO_PREF@.web.whatsapp.com","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36");
|
||||||
pref("@GUAO_PREF@.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:60.0) @GK_SLICE@ Firefox/60.0");
|
pref("@GUAO_PREF@.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:60.0) @GK_SLICE@ Firefox/60.0");
|
||||||
pref("@GUAO_PREF@.studio.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:68.0) @GK_SLICE@ @GRE_VERSION_SLICE@ Firefox/68.0 @APP_SLICE@");
|
pref("@GUAO_PREF@.studio.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:68.0) @GK_SLICE@ @UXP_VERSION_SLICE@ Firefox/68.0 @APP_SLICE@");
|
||||||
pref("@GUAO_PREF@.gaming.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:71.0) @GK_SLICE@ Firefox/71.0");
|
pref("@GUAO_PREF@.gaming.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:71.0) @GK_SLICE@ Firefox/71.0");
|
||||||
|
|
||||||
// The following domains do not like the Goanna slice
|
// The following domains do not like the Goanna slice
|
||||||
|
|
@ -78,5 +80,7 @@ pref("@GUAO_PREF@.yuku.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@
|
||||||
|
|
||||||
// Domains Basilisk overrides that are not in the Pale Moon overrides
|
// Domains Basilisk overrides that are not in the Pale Moon overrides
|
||||||
pref("@GUAO_PREF@.slack.com","Mozilla/5.0 (%OS_SLICE% rv:100.0) @GK_SLICE@ Firefox/100.0 @APP_SLICE@");
|
pref("@GUAO_PREF@.slack.com","Mozilla/5.0 (%OS_SLICE% rv:100.0) @GK_SLICE@ Firefox/100.0 @APP_SLICE@");
|
||||||
|
// There are multiple addons on the Pale Moon addons site that work with Basilisk that are not listed on the Basilisk addons site.
|
||||||
|
pref("@GUAO_PREF@.addons.palemoon.org","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @UXP_VERSION_SLICE@ @FX_SLICE@ @PALE_MOON_SLICE@");
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,9 @@ MOZ_AUSTRALIS=1
|
||||||
MC_BASILISK=1
|
MC_BASILISK=1
|
||||||
MOZ_UPDATER=
|
MOZ_UPDATER=
|
||||||
|
|
||||||
if test "$OS_ARCH" = "WINNT" -o \
|
if test "$MOZ_WIDGET_TOOLKIT" = "windows" -o \
|
||||||
"$OS_ARCH" = "Linux"; then
|
"$MOZ_WIDGET_TOOLKIT" = "gtk2" -o \
|
||||||
|
"$MOZ_WIDGET_TOOLKIT" = "gtk3"; then
|
||||||
MOZ_BUNDLED_FONTS=1
|
MOZ_BUNDLED_FONTS=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@
|
||||||
@RESPATH@/chrome/@AB_CD@@JAREXT@
|
@RESPATH@/chrome/@AB_CD@@JAREXT@
|
||||||
@RESPATH@/chrome/@AB_CD@.manifest
|
@RESPATH@/chrome/@AB_CD@.manifest
|
||||||
@RESPATH@/dictionaries/*
|
@RESPATH@/dictionaries/*
|
||||||
#if defined(XP_WIN) || defined(XP_LINUX)
|
#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK)
|
||||||
@RESPATH@/fonts/*
|
@RESPATH@/fonts/*
|
||||||
#endif
|
#endif
|
||||||
@RESPATH@/hyphenation/*
|
@RESPATH@/hyphenation/*
|
||||||
|
|
|
||||||
|
|
@ -2404,6 +2404,7 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
|
||||||
.tab-label {
|
.tab-label {
|
||||||
margin-top: 1px;
|
margin-top: 1px;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
|
-moz-box-flex: 1;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2503,7 +2504,7 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
|
||||||
opacity: 0.9999;
|
opacity: 0.9999;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-label:not([selected="true"]) {
|
.tab-label-container:not([selected="true"]) {
|
||||||
opacity: .7;
|
opacity: .7;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2529,7 +2530,7 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
|
||||||
border-width: 0 11px;
|
border-width: 0 11px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tabbrowser-tab:focus > .tab-stack > .tab-content > .tab-label:not([pinned]),
|
.tabbrowser-tab:focus > .tab-stack > .tab-content > .tab-label-container:not([pinned]),
|
||||||
.tabbrowser-tab:focus > .tab-stack > .tab-content > .tab-icon-image[pinned],
|
.tabbrowser-tab:focus > .tab-stack > .tab-content > .tab-icon-image[pinned],
|
||||||
.tabbrowser-tab:focus > .tab-stack > .tab-content > .tab-throbber[pinned] {
|
.tabbrowser-tab:focus > .tab-stack > .tab-content > .tab-throbber[pinned] {
|
||||||
box-shadow: @focusRingShadow@;
|
box-shadow: @focusRingShadow@;
|
||||||
|
|
|
||||||
|
|
@ -192,7 +192,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-close-button {
|
.tab-close-button {
|
||||||
margin-inline-start: 4px;
|
margin-inline-start: 2px;
|
||||||
margin-inline-end: -2px;
|
margin-inline-end: -2px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -479,6 +479,10 @@ pref("browser.tabs.delayHidingAudioPlayingIconMS", 3000);
|
||||||
// window is enabled.
|
// window is enabled.
|
||||||
pref("browser.tabs.allowTabDetach", true);
|
pref("browser.tabs.allowTabDetach", true);
|
||||||
|
|
||||||
|
// Whether to fade tab labels instead of using ellipses when cutting off
|
||||||
|
// long page titles.
|
||||||
|
pref("browser.tabs.fadeLabels", true);
|
||||||
|
|
||||||
pref("browser.allTabs.previews", true);
|
pref("browser.allTabs.previews", true);
|
||||||
pref("browser.allTabs.hidePinnedTabs", false);
|
pref("browser.allTabs.hidePinnedTabs", false);
|
||||||
pref("browser.ctrlTab.previews", true);
|
pref("browser.ctrlTab.previews", true);
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,16 @@ tabbrowser {
|
||||||
transition: transform 200ms ease-out;
|
transition: transform 200ms ease-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@supports -moz-bool-pref("browser.tabs.fadeLabels") {
|
||||||
|
.tabbrowser-tab .tab-text[_is_cropped] {
|
||||||
|
mask-image: linear-gradient(to left, transparent, black 2em);
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabbrowser-tab .tab-text[_is_cropped]:-moz-locale-dir(rtl) {
|
||||||
|
mask-image: linear-gradient(to right, transparent, black 2em);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#alltabs-popup {
|
#alltabs-popup {
|
||||||
-moz-binding: url("chrome://browser/content/tabbrowser.xml#tabbrowser-alltabs-popup");
|
-moz-binding: url("chrome://browser/content/tabbrowser.xml#tabbrowser-alltabs-popup");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1260,7 +1260,11 @@
|
||||||
<body>
|
<body>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
aTab.label = this.mStringBundle.getString("tabs.connecting");
|
aTab.label = this.mStringBundle.getString("tabs.connecting");
|
||||||
|
if (Services.prefs.getBoolPref("browser.tabs.fadeLabels")) {
|
||||||
|
aTab.crop = "clip";
|
||||||
|
} else {
|
||||||
aTab.crop = "end";
|
aTab.crop = "end";
|
||||||
|
}
|
||||||
this._tabAttrModified(aTab, ["label", "crop"]);
|
this._tabAttrModified(aTab, ["label", "crop"]);
|
||||||
]]>
|
]]>
|
||||||
</body>
|
</body>
|
||||||
|
|
@ -1300,6 +1304,10 @@
|
||||||
title = this.mStringBundle.getString("tabs.emptyTabTitle");
|
title = this.mStringBundle.getString("tabs.emptyTabTitle");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Services.prefs.getBoolPref("browser.tabs.fadeLabels")) {
|
||||||
|
crop = "clip";
|
||||||
|
}
|
||||||
|
|
||||||
if (aTab.label == title &&
|
if (aTab.label == title &&
|
||||||
aTab.crop == crop)
|
aTab.crop == crop)
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -1527,7 +1535,11 @@
|
||||||
else
|
else
|
||||||
t.setAttribute("label", aURI);
|
t.setAttribute("label", aURI);
|
||||||
|
|
||||||
|
if (Services.prefs.getBoolPref("browser.tabs.fadeLabels")) {
|
||||||
|
t.setAttribute("crop", "clip");
|
||||||
|
} else {
|
||||||
t.setAttribute("crop", "end");
|
t.setAttribute("crop", "end");
|
||||||
|
}
|
||||||
t.setAttribute("validate", "never"); //PMed
|
t.setAttribute("validate", "never"); //PMed
|
||||||
t.setAttribute("onerror", "this.removeAttribute('image');");
|
t.setAttribute("onerror", "this.removeAttribute('image');");
|
||||||
|
|
||||||
|
|
@ -3611,7 +3623,11 @@
|
||||||
var tab = this.firstChild;
|
var tab = this.firstChild;
|
||||||
tab.setAttribute("label",
|
tab.setAttribute("label",
|
||||||
this.tabbrowser.mStringBundle.getString("tabs.emptyTabTitle"));
|
this.tabbrowser.mStringBundle.getString("tabs.emptyTabTitle"));
|
||||||
|
if (Services.prefs.getBoolPref("browser.tabs.fadeLabels")) {
|
||||||
|
tab.setAttribute("crop", "clip");
|
||||||
|
} else {
|
||||||
tab.setAttribute("crop", "end");
|
tab.setAttribute("crop", "end");
|
||||||
|
}
|
||||||
tab.setAttribute("onerror", "this.removeAttribute('image');");
|
tab.setAttribute("onerror", "this.removeAttribute('image');");
|
||||||
this.adjustTabstrip();
|
this.adjustTabstrip();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
#define GRE_VERSION @MOZILLA_UAVERSION_U@
|
#define GRE_VERSION @MOZILLA_UAVERSION_U@
|
||||||
#define GRE_VERSION_SLICE Goanna/@GRE_VERSION@
|
#define GRE_VERSION_SLICE Goanna/@GRE_VERSION@
|
||||||
#define GRE_DATE_SLICE Goanna/20170101
|
#define GRE_DATE_SLICE Goanna/20230101
|
||||||
#define PM_SLICE PaleMoon/@MOZ_APP_VERSION@
|
#define PM_SLICE PaleMoon/@MOZ_APP_VERSION@
|
||||||
|
|
||||||
#define GK_VERSION @MOZILLA_COMPATVERSION_U@
|
#define GK_VERSION @MOZILLA_COMPATVERSION_U@
|
||||||
|
|
@ -23,9 +23,6 @@ pref("@GUAO_PREF@.aol.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@
|
||||||
pref("@GUAO_PREF@.bing.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Pale Moon)");
|
pref("@GUAO_PREF@.bing.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Pale Moon)");
|
||||||
pref("@GUAO_PREF@.chase.com","Mozilla/5.0 (%OS_SLICE% rv:79.0) @GK_SLICE@ Firefox/79.0");
|
pref("@GUAO_PREF@.chase.com","Mozilla/5.0 (%OS_SLICE% rv:79.0) @GK_SLICE@ Firefox/79.0");
|
||||||
pref("@GUAO_PREF@.dropbox.com","Mozilla/5.0 (%OS_SLICE% rv:68.9) @GK_SLICE@ Firefox/68.9 (Pale Moon)");
|
pref("@GUAO_PREF@.dropbox.com","Mozilla/5.0 (%OS_SLICE% rv:68.9) @GK_SLICE@ Firefox/68.9 (Pale Moon)");
|
||||||
pref("@GUAO_PREF@.google.com","Mozilla/5.0 (%OS_SLICE% rv:71.0) @GK_SLICE@ Firefox/71.0 @PM_SLICE@");
|
|
||||||
pref("@GUAO_PREF@.googlevideos.com","Mozilla/5.0 (%OS_SLICE% rv:38.9) @GK_SLICE@ @GRE_VERSION_SLICE@ Firefox/38.9 @PM_SLICE@");
|
|
||||||
pref("@GUAO_PREF@.gstatic.com","Mozilla/5.0 (%OS_SLICE% rv:71.0) @GK_SLICE@ Firefox/71.0 @PM_SLICE@");
|
|
||||||
pref("@GUAO_PREF@.kroger.com","Mozilla/5.0 (%OS_SLICE% rv:86.0) @GK_SLICE@ Firefox/86.0 (Pale Moon)");
|
pref("@GUAO_PREF@.kroger.com","Mozilla/5.0 (%OS_SLICE% rv:86.0) @GK_SLICE@ Firefox/86.0 (Pale Moon)");
|
||||||
pref("@GUAO_PREF@.live.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Pale Moon)");
|
pref("@GUAO_PREF@.live.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Pale Moon)");
|
||||||
pref("@GUAO_PREF@.msn.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Pale Moon)");
|
pref("@GUAO_PREF@.msn.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Pale Moon)");
|
||||||
|
|
@ -41,8 +38,6 @@ pref("@GUAO_PREF@.calendar.yahoo.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@)
|
||||||
pref("@GUAO_PREF@.www.amazon.com","Mozilla/5.0 (%OS_SLICE% rv:45.9) @GK_SLICE@ Firefox/45.9 (Pale Moon)");
|
pref("@GUAO_PREF@.www.amazon.com","Mozilla/5.0 (%OS_SLICE% rv:45.9) @GK_SLICE@ Firefox/45.9 (Pale Moon)");
|
||||||
// Soundcloud uses Firefox-exclusive combinations of code. Never pass Firefox slice.
|
// Soundcloud uses Firefox-exclusive combinations of code. Never pass Firefox slice.
|
||||||
pref("@GUAO_PREF@.soundcloud.com","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @PM_SLICE@");
|
pref("@GUAO_PREF@.soundcloud.com","Mozilla/5.0 (%OS_SLICE% rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @PM_SLICE@");
|
||||||
// Daily motion only likes strict Firefox UAs
|
|
||||||
pref("@GUAO_PREF@.dailymotion.com","Mozilla/5.0 (%OS_SLICE% rv:52.0) @GK_SLICE@ Firefox/52.0");
|
|
||||||
pref("@GUAO_PREF@.players.brightcove.net","Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko");
|
pref("@GUAO_PREF@.players.brightcove.net","Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko");
|
||||||
// Google fonts serves physically different fonts to later Firefox versions that render incorrectly unless on Gecko
|
// Google fonts serves physically different fonts to later Firefox versions that render incorrectly unless on Gecko
|
||||||
pref("@GUAO_PREF@.fonts.googleapis.com", "Mozilla/5.0 (%OS_SLICE% rv:61.9) Gecko/20100101 Firefox/61.9");
|
pref("@GUAO_PREF@.fonts.googleapis.com", "Mozilla/5.0 (%OS_SLICE% rv:61.9) Gecko/20100101 Firefox/61.9");
|
||||||
|
|
@ -67,13 +62,12 @@ pref("@GUAO_PREF@.citi.com","Mozilla/5.0 (%OS_SLICE% rv:68.0) @GK_SLICE@ Firefox
|
||||||
pref("@GUAO_PREF@.facebook.com","Mozilla/5.0 (%OS_SLICE% rv:68.0) @GK_SLICE@ Firefox/68.0 @PM_SLICE@");
|
pref("@GUAO_PREF@.facebook.com","Mozilla/5.0 (%OS_SLICE% rv:68.0) @GK_SLICE@ Firefox/68.0 @PM_SLICE@");
|
||||||
pref("@GUAO_PREF@.netflix.com","Mozilla/5.0 (Windows NT 6.1; rv:45.9) @GK_SLICE@ Firefox/45.9");
|
pref("@GUAO_PREF@.netflix.com","Mozilla/5.0 (Windows NT 6.1; rv:45.9) @GK_SLICE@ Firefox/45.9");
|
||||||
pref("@GUAO_PREF@.netflximg.net","Mozilla/5.0 (Windows NT 6.1; rv:45.9) @GK_SLICE@ Firefox/45.9");
|
pref("@GUAO_PREF@.netflximg.net","Mozilla/5.0 (Windows NT 6.1; rv:45.9) @GK_SLICE@ Firefox/45.9");
|
||||||
pref("@GUAO_PREF@.mewe.com", "Mozilla/5.0 (%OS_SLICE% rv:102.0) Gecko/20100101 Firefox/102.0");
|
pref("@GUAO_PREF@.mewe.com", "Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@");
|
||||||
|
|
||||||
// UA-sniffing domains that are "app/vendor-specific" and do not like Pale Moon
|
// UA-sniffing domains that are "app/vendor-specific" and do not like Pale Moon
|
||||||
pref("@GUAO_PREF@.web.whatsapp.com","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36");
|
pref("@GUAO_PREF@.web.whatsapp.com","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36");
|
||||||
pref("@GUAO_PREF@.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:60.0) @GK_SLICE@ Firefox/60.0");
|
pref("@GUAO_PREF@.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@");
|
||||||
pref("@GUAO_PREF@.studio.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:68.0) @GK_SLICE@ @GRE_VERSION_SLICE@ Firefox/68.0 @PM_SLICE@");
|
pref("@GUAO_PREF@.studio.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @GRE_VERSION_SLICE@ @FX_SLICE@ @PM_SLICE@");
|
||||||
pref("@GUAO_PREF@.gaming.youtube.com","Mozilla/5.0 (%OS_SLICE% rv:71.0) @GK_SLICE@ Firefox/71.0");
|
|
||||||
|
|
||||||
// The following domains do not like the Goanna slice
|
// The following domains do not like the Goanna slice
|
||||||
pref("@GUAO_PREF@.hitbox.tv","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@");
|
pref("@GUAO_PREF@.hitbox.tv","Mozilla/5.0 (%OS_SLICE% rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@");
|
||||||
|
|
|
||||||
|
|
@ -3045,6 +3045,9 @@ var SessionStoreInternal = {
|
||||||
tab.label = activePageData.url;
|
tab.label = activePageData.url;
|
||||||
tab.crop = "center";
|
tab.crop = "center";
|
||||||
}
|
}
|
||||||
|
if (this._prefBranch.getBoolPref("tabs.fadeLabels")) {
|
||||||
|
tab.crop = "clip";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -416,6 +416,95 @@ CustomElementRegistry::EnqueueLifecycleCallback(nsIDocument::ElementCallbackType
|
||||||
reactionsStack->EnqueueCallbackReaction(aCustomElement, Move(callback));
|
reactionsStack->EnqueueCallbackReaction(aCustomElement, Move(callback));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
class CandidateFinder
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CandidateFinder(nsTArray<nsWeakPtr>&& aCandidates, nsIDocument* aDoc);
|
||||||
|
nsTArray<nsCOMPtr<Element>> OrderedCandidates();
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool Traverse(Element* aRoot, nsTArray<nsCOMPtr<Element>>& aOrderedElements);
|
||||||
|
|
||||||
|
nsCOMPtr<nsIDocument> mDoc;
|
||||||
|
nsInterfaceHashtable<nsPtrHashKey<Element>, Element> mCandidates;
|
||||||
|
};
|
||||||
|
|
||||||
|
CandidateFinder::CandidateFinder(nsTArray<nsWeakPtr>&& aCandidates,
|
||||||
|
nsIDocument* aDoc)
|
||||||
|
: mDoc(aDoc)
|
||||||
|
, mCandidates(aCandidates.Length())
|
||||||
|
{
|
||||||
|
MOZ_ASSERT(mDoc);
|
||||||
|
for (auto& candidate : aCandidates) {
|
||||||
|
nsCOMPtr<Element> elem = do_QueryReferent(candidate);
|
||||||
|
if (!elem) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
Element* key = elem.get();
|
||||||
|
mCandidates.Put(key, elem.forget());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
nsTArray<nsCOMPtr<Element>>
|
||||||
|
CandidateFinder::OrderedCandidates()
|
||||||
|
{
|
||||||
|
if (mCandidates.Count() == 1) {
|
||||||
|
// Fast path for one candidate.
|
||||||
|
for (auto iter = mCandidates.Iter(); !iter.Done(); iter.Next()) {
|
||||||
|
nsTArray<nsCOMPtr<Element>> rval({ Move(iter.Data()) });
|
||||||
|
iter.Remove();
|
||||||
|
return rval;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
nsTArray<nsCOMPtr<Element>> orderedElements(mCandidates.Count());
|
||||||
|
for (Element* child = mDoc->GetFirstElementChild(); child; child = child->GetNextElementSibling()) {
|
||||||
|
if (!Traverse(child->AsElement(), orderedElements)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return orderedElements;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
CandidateFinder::Traverse(Element* aRoot, nsTArray<nsCOMPtr<Element>>& aOrderedElements)
|
||||||
|
{
|
||||||
|
nsCOMPtr<Element> elem = mCandidates.Get(aRoot);
|
||||||
|
if (elem) {
|
||||||
|
mCandidates.Remove(aRoot);
|
||||||
|
aOrderedElements.AppendElement(Move(elem));
|
||||||
|
if (mCandidates.Count() == 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ShadowRoot* root = aRoot->GetShadowRoot()) {
|
||||||
|
// First iterate the children of the shadow root if aRoot is a shadow host.
|
||||||
|
for (Element* child = root->GetFirstElementChild(); child;
|
||||||
|
child = child->GetNextElementSibling()) {
|
||||||
|
if (!Traverse(child, aOrderedElements)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Iterate the explicit children of aRoot.
|
||||||
|
for (Element* child = aRoot->GetFirstElementChild(); child;
|
||||||
|
child = child->GetNextElementSibling()) {
|
||||||
|
if (!Traverse(child, aOrderedElements)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
CustomElementRegistry::UpgradeCandidates(nsIAtom* aKey,
|
CustomElementRegistry::UpgradeCandidates(nsIAtom* aKey,
|
||||||
CustomElementDefinition* aDefinition,
|
CustomElementDefinition* aDefinition,
|
||||||
|
|
@ -427,18 +516,13 @@ CustomElementRegistry::UpgradeCandidates(nsIAtom* aKey,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Bug 1326028 - Upgrade custom element in shadow-including tree order
|
|
||||||
nsAutoPtr<nsTArray<nsWeakPtr>> candidates;
|
nsAutoPtr<nsTArray<nsWeakPtr>> candidates;
|
||||||
mCandidatesMap.RemoveAndForget(aKey, candidates);
|
mCandidatesMap.RemoveAndForget(aKey, candidates);
|
||||||
if (candidates) {
|
if (candidates) {
|
||||||
CustomElementReactionsStack* reactionsStack =
|
CustomElementReactionsStack* reactionsStack =
|
||||||
docGroup->CustomElementReactionsStack();
|
docGroup->CustomElementReactionsStack();
|
||||||
for (size_t i = 0; i < candidates->Length(); ++i) {
|
CandidateFinder finder(Move(*candidates), mWindow->GetExtantDoc());
|
||||||
nsCOMPtr<Element> elem = do_QueryReferent(candidates->ElementAt(i));
|
for (auto& elem : finder.OrderedCandidates()) {
|
||||||
if (!elem) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
reactionsStack->EnqueueUpgradeReaction(elem, aDefinition);
|
reactionsStack->EnqueueUpgradeReaction(elem, aDefinition);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1239,8 +1239,11 @@ pref("privacy.trackingprotection.pbmode.enabled", false);
|
||||||
pref("dom.event.contextmenu.enabled", true);
|
pref("dom.event.contextmenu.enabled", true);
|
||||||
pref("dom.event.clipboardevents.enabled", true);
|
pref("dom.event.clipboardevents.enabled", true);
|
||||||
|
|
||||||
|
// TODO: merge these two prefs!
|
||||||
// Enable Google WebComponents?
|
// Enable Google WebComponents?
|
||||||
pref("dom.webcomponents.enabled", true);
|
pref("dom.webcomponents.enabled", true);
|
||||||
|
// Whether WC getRootNode is available
|
||||||
|
pref("dom.getRootNode.enabled", true);
|
||||||
|
|
||||||
pref("javascript.enabled", true);
|
pref("javascript.enabled", true);
|
||||||
// Enable Array.prototype.values
|
// Enable Array.prototype.values
|
||||||
|
|
@ -4614,9 +4617,6 @@ pref("dom.push.http2.reset_retry_count_after_ms", 60000);
|
||||||
pref("dom.push.http2.maxRetries", 2);
|
pref("dom.push.http2.maxRetries", 2);
|
||||||
pref("dom.push.http2.retryInterval", 5000);
|
pref("dom.push.http2.retryInterval", 5000);
|
||||||
|
|
||||||
// Whether WC getRootNode is available
|
|
||||||
pref("dom.getRootNode.enabled", false);
|
|
||||||
|
|
||||||
// WebNetworkStats
|
// WebNetworkStats
|
||||||
pref("dom.mozNetworkStats.enabled", false);
|
pref("dom.mozNetworkStats.enabled", false);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,21 @@ public:
|
||||||
* @return The entry, or nullptr if not found. Do not release this pointer!
|
* @return The entry, or nullptr if not found. Do not release this pointer!
|
||||||
*/
|
*/
|
||||||
Interface* GetWeak(KeyType aKey, bool* aFound = nullptr) const;
|
Interface* GetWeak(KeyType aKey, bool* aFound = nullptr) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allows inserting a value into the hashtable, moving its owning reference
|
||||||
|
* count into the hashtable, avoiding an AddRef.
|
||||||
|
*/
|
||||||
|
void Put(KeyType aKey, already_AddRefed<Interface>&& aData)
|
||||||
|
{
|
||||||
|
if (!Put(aKey, mozilla::Move(aData), mozilla::fallible)) {
|
||||||
|
NS_ABORT_OOM(this->mTable.EntrySize() * this->mTable.EntryCount());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MOZ_MUST_USE bool Put(KeyType aKey, already_AddRefed<Interface>&& aData,
|
||||||
|
const mozilla::fallible_t&);
|
||||||
|
using base_type::Put;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename K, typename T>
|
template<typename K, typename T>
|
||||||
|
|
@ -138,4 +153,19 @@ nsInterfaceHashtable<KeyClass, Interface>::GetWeak(KeyType aKey,
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<class KeyClass, class Interface>
|
||||||
|
bool
|
||||||
|
nsInterfaceHashtable<KeyClass, Interface>::Put(KeyType aKey,
|
||||||
|
already_AddRefed<Interface>&& aValue,
|
||||||
|
const mozilla::fallible_t&)
|
||||||
|
{
|
||||||
|
typename base_type::EntryType* ent = this->PutEntry(aKey);
|
||||||
|
if (!ent) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ent->mData = aValue;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // nsInterfaceHashtable_h__
|
#endif // nsInterfaceHashtable_h__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue