Merge f-t to m-c, a=merge
This commit is contained in:
@@ -525,7 +525,7 @@
|
||||
|
||||
if (aCallGlobalListeners != false &&
|
||||
aBrowser == this.mCurrentBrowser) {
|
||||
this.mProgressListeners.forEach(function (p) {
|
||||
for (let p of this.mProgressListeners) {
|
||||
if (aMethod in p) {
|
||||
try {
|
||||
if (!p[aMethod].apply(p, aArguments))
|
||||
@@ -535,13 +535,13 @@
|
||||
Components.utils.reportError(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (aCallTabsListeners != false) {
|
||||
aArguments.unshift(aBrowser);
|
||||
|
||||
this.mTabsProgressListeners.forEach(function (p) {
|
||||
for (let p of this.mTabsProgressListeners) {
|
||||
if (aMethod in p) {
|
||||
try {
|
||||
if (!p[aMethod].apply(p, aArguments))
|
||||
@@ -551,7 +551,7 @@
|
||||
Components.utils.reportError(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return rv;
|
||||
@@ -2136,11 +2136,11 @@
|
||||
browser.setAttribute("type", "content-targetable");
|
||||
|
||||
// Remove this tab as the owner of any other tabs, since it's going away.
|
||||
Array.forEach(this.tabs, function (tab) {
|
||||
for (let tab of this.tabs) {
|
||||
if ("owner" in tab && tab.owner == aTab)
|
||||
// |tab| is a child of the tab we're removing, make it an orphan
|
||||
tab.owner = null;
|
||||
});
|
||||
}
|
||||
|
||||
aTab._endRemoveArgs = [closeWindow, newTab];
|
||||
return true;
|
||||
@@ -2544,12 +2544,12 @@
|
||||
<parameter name="aTabs"/>
|
||||
<body>
|
||||
<![CDATA[
|
||||
Array.forEach(this.tabs, function(tab) {
|
||||
for (let tab of this.tabs) {
|
||||
if (aTabs.indexOf(tab) == -1)
|
||||
this.hideTab(tab);
|
||||
else
|
||||
this.showTab(tab);
|
||||
}, this);
|
||||
}
|
||||
|
||||
this.tabContainer._handleTabSelect(false);
|
||||
]]>
|
||||
@@ -3649,8 +3649,8 @@
|
||||
if (tabs._lastTabClosedByMouse)
|
||||
tabs._expandSpacerBy(this._scrollButtonDown.clientWidth);
|
||||
|
||||
tabs.tabbrowser._removingTabs.forEach(tabs.tabbrowser.removeTab,
|
||||
tabs.tabbrowser);
|
||||
for (let tab of tabs.tabbrowser._removingTabs)
|
||||
tabs.tabbrowser.removeTab(tab);
|
||||
|
||||
tabs._positionPinnedTabs();
|
||||
]]></handler>
|
||||
|
||||
@@ -516,7 +516,7 @@ let SnapshotsListView = Heritage.extend(WidgetMethods, {
|
||||
|
||||
// Show a throbber and a "Saving…" label if serializing isn't immediate.
|
||||
setNamedTimeout("call-list-save", CALLS_LIST_SLOW_SAVE_DELAY, () => {
|
||||
footer.setAttribute("saving", "");
|
||||
footer.classList.add("devtools-throbber");
|
||||
save.setAttribute("disabled", "true");
|
||||
save.setAttribute("value", L10N.getStr("snapshotsList.savingLabel"));
|
||||
});
|
||||
@@ -529,7 +529,7 @@ let SnapshotsListView = Heritage.extend(WidgetMethods, {
|
||||
console.error("Could not save recorded animation frame snapshot file.");
|
||||
}
|
||||
clearNamedTimeout("call-list-save");
|
||||
footer.removeAttribute("saving");
|
||||
footer.classList.remove("devtools-throbber");
|
||||
save.removeAttribute("disabled");
|
||||
save.setAttribute("value", L10N.getStr("snapshotsList.saveLabel"));
|
||||
});
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
value="&shaderEditorUI.reloadNotice2;"/>
|
||||
</hbox>
|
||||
<hbox id="waiting-notice"
|
||||
class="notice-container"
|
||||
class="notice-container devtools-throbber"
|
||||
align="center"
|
||||
pack="center"
|
||||
flex="1"
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
</xul:box>
|
||||
<xul:box id="splitview-resizer-target" class="theme-sidebar splitview-nav-container"
|
||||
persist="height">
|
||||
<div class="devtools-throbber"></div>
|
||||
<ol class="splitview-nav" tabindex="0"></ol>
|
||||
<div class="splitview-nav placeholder empty">
|
||||
<p><strong>&noStyleSheet.label;</strong></p>
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
value="&webAudioEditorUI.reloadNotice2;"/>
|
||||
</hbox>
|
||||
<hbox id="waiting-notice"
|
||||
class="notice-container"
|
||||
class="notice-container devtools-throbber"
|
||||
align="center"
|
||||
pack="center"
|
||||
flex="1"
|
||||
|
||||
@@ -119,14 +119,8 @@
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.snapshot-item-footer[saving]::before {
|
||||
display: inline-block;
|
||||
content: "";
|
||||
background: url("chrome://global/skin/icons/loading_16.png") center no-repeat;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
.snapshot-item-footer.devtools-throbber::before {
|
||||
margin-top: -2px;
|
||||
-moz-margin-end: 4px;
|
||||
}
|
||||
|
||||
#snapshots-list .selected label {
|
||||
|
||||
@@ -18,15 +18,6 @@
|
||||
font-size: 110%;
|
||||
}
|
||||
|
||||
#waiting-notice::before {
|
||||
display: inline-block;
|
||||
content: "";
|
||||
background: url("chrome://global/skin/icons/loading_16.png") center no-repeat;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
-moz-margin-end: 6px;
|
||||
}
|
||||
|
||||
/* Shaders pane */
|
||||
|
||||
#shaders-pane {
|
||||
|
||||
@@ -11,10 +11,13 @@
|
||||
%define smw_itemLightTopBorder rgba(128,128,128,0.15)
|
||||
%define smw_itemLightBottomBorder transparent
|
||||
|
||||
.loading .splitview-nav-container {
|
||||
background-image: url(chrome://global/skin/icons/loading_16.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
.splitview-nav-container .devtools-throbber {
|
||||
display: none;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.loading .splitview-nav-container .devtools-throbber {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.theme-dark .splitview-nav-container {
|
||||
|
||||
@@ -937,3 +937,25 @@
|
||||
border-color: var(--theme-splitter-color); /* Needed for responsive container at low width. */
|
||||
}
|
||||
|
||||
/* Throbbers */
|
||||
.devtools-throbber::before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
vertical-align: bottom;
|
||||
-moz-margin-end: 0.5em;
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
border: 2px solid currentColor;
|
||||
border-right-color: transparent;
|
||||
border-radius: 50%;
|
||||
animation: 1.1s linear throbber-spin infinite;
|
||||
}
|
||||
|
||||
@keyframes throbber-spin {
|
||||
from {
|
||||
transform: none;
|
||||
}
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
@@ -17,15 +17,6 @@
|
||||
font-size: 110%;
|
||||
}
|
||||
|
||||
#waiting-notice::before {
|
||||
display: inline-block;
|
||||
content: "";
|
||||
background: url("chrome://global/skin/icons/loading_16.png") center no-repeat;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
-moz-margin-end: 6px;
|
||||
}
|
||||
|
||||
/* Context Graph */
|
||||
svg {
|
||||
overflow: hidden;
|
||||
|
||||
@@ -209,6 +209,10 @@ LoginManager.prototype = {
|
||||
},
|
||||
|
||||
_gatherTelemetry : function() {
|
||||
let numPasswordsBlocklist = Services.telemetry.getHistogramById("PWMGR_BLOCKLIST_NUM_SITES");
|
||||
numPasswordsBlocklist.clear();
|
||||
numPasswordsBlocklist.add(this.getAllDisabledHosts({}).length);
|
||||
|
||||
let numPasswordsHist = Services.telemetry.getHistogramById("PWMGR_NUM_SAVED_PASSWORDS");
|
||||
numPasswordsHist.clear();
|
||||
numPasswordsHist.add(this.countLogins("", "", ""));
|
||||
|
||||
@@ -7155,6 +7155,14 @@
|
||||
"n_buckets": 16,
|
||||
"description": "The number of entries in persistent DataStorage (HSTS and HPKP data, basically)"
|
||||
},
|
||||
"PWMGR_BLOCKLIST_NUM_SITES": {
|
||||
"expires_in_version": "never",
|
||||
"kind": "exponential",
|
||||
"high": 100,
|
||||
"n_buckets" : 10,
|
||||
"extended_statistics_ok": true,
|
||||
"description": "The number of sites for which the user has explicitly rejected saving logins"
|
||||
},
|
||||
"PWMGR_NUM_SAVED_PASSWORDS": {
|
||||
"expires_in_version": "never",
|
||||
"kind": "exponential",
|
||||
|
||||
Reference in New Issue
Block a user