summaryrefslogtreecommitdiffstats
path: root/application
diff options
context:
space:
mode:
Diffstat (limited to 'application')
-rw-r--r--application/palemoon/base/content/browser.js63
-rw-r--r--application/palemoon/base/content/sync/quota.js11
-rw-r--r--application/palemoon/base/content/tabbrowser.xml48
-rw-r--r--application/palemoon/branding/shared/pref/preferences.inc8
-rw-r--r--application/palemoon/components/places/PlacesUIUtils.jsm27
-rw-r--r--application/palemoon/components/places/content/browserPlacesViews.js9
6 files changed, 128 insertions, 38 deletions
diff --git a/application/palemoon/base/content/browser.js b/application/palemoon/base/content/browser.js
index a51b73fe8..ba791f709 100644
--- a/application/palemoon/base/content/browser.js
+++ b/application/palemoon/base/content/browser.js
@@ -328,6 +328,67 @@ const gSessionHistoryObserver = {
}
};
+var gFindBarSettings = {
+ messageName: "Findbar:Keypress",
+ prefName: "accessibility.typeaheadfind",
+ findAsYouType: null,
+
+ init: function() {
+ window.messageManager.addMessageListener(this.messageName, this);
+
+ gPrefService.addObserver(this.prefName, this, false);
+ this.writeFindAsYouType();
+ },
+
+ uninit: function() {
+ window.messageManager.removeMessageListener(this.messageName, this);
+
+ try {
+ gPrefService.removeObserver(this.prefName, this);
+ } catch (ex) {
+ Cu.reportError(ex);
+ }
+ },
+
+ observe: function(aSubject, aTopic, aData) {
+ if (aTopic != "nsPref:changed") {
+ return;
+ }
+
+ this.writeFindAsYouType();
+ },
+
+ writeFindAsYouType: function() {
+ this.findAsYouType = gPrefService.getBoolPref(this.prefName);
+ },
+
+ receiveMessage: function(aMessage) {
+ switch (aMessage.name) {
+ case this.messageName:
+ // If the find bar for chrome window's context is not yet alive,
+ // only initialize it if there's a possibility FindAsYouType
+ // will be used.
+ // There's no point in doing it for most random keypresses.
+ if (!gFindBarInitialized && aMessage.data.shouldFastFind) {
+ let shouldFastFind = this.findAsYouType;
+ if (!shouldFastFind) {
+ // Please keep in sync with toolkit/content/widgets/findbar.xml
+ const FAYT_LINKS_KEY = "'";
+ const FAYT_TEXT_KEY = "/";
+ let charCode = aMessage.data.fakeEvent.charCode;
+ let key = charCode ? String.fromCharCode(charCode) : null;
+ shouldFastFind = key == FAYT_LINKS_KEY || key == FAYT_TEXT_KEY;
+ }
+ if (shouldFastFind) {
+ // Make sure we return the result.
+ return gFindBar.receiveMessage(aMessage);
+ }
+ }
+ break;
+ }
+ }
+};
+
var gURLBarSettings = {
prefSuggest: "browser.urlbar.suggest.",
/*
@@ -730,6 +791,7 @@ var gBrowserInit = {
#ifdef MOZ_DEVTOOLS
DevToolsTheme.init();
#endif
+ gFindBarSettings.init();
messageManager.loadFrameScript("chrome://browser/content/content.js", true);
messageManager.loadFrameScript("chrome://browser/content/content-sessionStore.js", true);
@@ -1305,6 +1367,7 @@ var gBrowserInit = {
#ifdef MOZ_DEVTOOLS
DevToolsTheme.uninit();
#endif
+ gFindBarSettings.uninit();
UserAgentCompatibility.uninit();
diff --git a/application/palemoon/base/content/sync/quota.js b/application/palemoon/base/content/sync/quota.js
index 454052754..a42fbc722 100644
--- a/application/palemoon/base/content/sync/quota.js
+++ b/application/palemoon/base/content/sync/quota.js
@@ -193,10 +193,15 @@ var gUsageTreeView = {
return;
}
- toremove = [this._byname[coll].title for each (coll in toremove)];
- toremove = toremove.join(gSyncQuota.bundle.getString("quota.list.separator"));
+ // Tycho: toremove = [this._byname[coll].title for each (coll in toremove)];
+ let toremovetitles = [];
+ for (let coll in toremove) {
+ toremovetitles.push(this._byname[coll].title);
+ }
+
+ toremovetitles = toremovetitles.join(gSyncQuota.bundle.getString("quota.list.separator"));
caption.firstChild.nodeValue = gSyncQuota.bundle.getFormattedString(
- "quota.removal.label", [toremove]);
+ "quota.removal.label", [toremovetitles]);
if (freeup)
caption.firstChild.nodeValue += gSyncQuota.bundle.getFormattedString(
"quota.freeup.label", gSyncQuota.convertKB(freeup));
diff --git a/application/palemoon/base/content/tabbrowser.xml b/application/palemoon/base/content/tabbrowser.xml
index 12319a62b..c054318ec 100644
--- a/application/palemoon/base/content/tabbrowser.xml
+++ b/application/palemoon/base/content/tabbrowser.xml
@@ -1669,8 +1669,22 @@
var tabsToClose;
switch (aCloseTabs) {
case this.closingTabsEnum.ALL:
- tabsToClose = this.tabs.length - this._removingTabs.length -
- gBrowser._numPinnedTabs;
+ // If there are multiple windows, pinned tabs will be closed, so
+ // we warn about them, too; if there is just one window, pinned
+ // tabs should come back on restart, so exclude them from warning.
+ var numberOfWindows = 0;
+ var browserEnum = Services.wm.getEnumerator("navigator:browser");
+ while (browserEnum.hasMoreElements() && numberOfWindows < 2) {
+ numberOfWindows++;
+ browserEnum.getNext();
+ }
+ if (numberOfWindows > 1) {
+ tabsToClose = this.tabs.length - this._removingTabs.length
+ }
+ else {
+ tabsToClose = this.tabs.length - this._removingTabs.length -
+ gBrowser._numPinnedTabs;
+ }
break;
case this.closingTabsEnum.OTHER:
tabsToClose = this.visibleTabs.length - 1 - gBrowser._numPinnedTabs;
@@ -3092,26 +3106,6 @@
window.focus();
break;
}
- case "Findbar:Keypress":
- // If the find bar for this tab is not yet alive, only initialize
- // it if there's a possibility FindAsYouType will be used.
- // There's no point in doing it for most random keypresses.
- if (!gFindBarInitialized && aMessage.data.shouldFastFind) {
- let shouldFastFind = this._findAsYouType;
- if (!shouldFastFind) {
- // Please keep in sync with toolkit/content/widgets/findbar.xml
- const FAYT_LINKS_KEY = "'";
- const FAYT_TEXT_KEY = "/";
- let charCode = aMessage.data.fakeEvent.charCode;
- let key = charCode ? String.fromCharCode(charCode) : null;
- shouldFastFind = key == FAYT_LINKS_KEY || key == FAYT_TEXT_KEY;
- }
- if (shouldFastFind) {
- // Make sure we return the result.
- return gFindBar.receiveMessage(aMessage);
- }
- }
- break;
}
]]></body>
</method>
@@ -3178,11 +3172,6 @@
this.mCurrentBrowser);
}
messageManager.addMessageListener("DOMWebNotificationClicked", this);
-
- // To correctly handle keypresses for potential FindAsYouType, while
- // the tab's find bar is not yet initialized.
- this._findAsYouType = Services.prefs.getBoolPref("accessibility.typeaheadfind");
- messageManager.addMessageListener("Findbar:Keypress", this);
]]>
</constructor>
@@ -3437,7 +3426,6 @@
tab.setAttribute("onerror", "this.removeAttribute('image');");
this.adjustTabstrip();
- Services.prefs.addObserver("accessibility.typeaheadfind", this._prefObserver, false);
Services.prefs.addObserver("browser.tabs.", this._prefObserver, false);
window.addEventListener("resize", this, false);
window.addEventListener("load", this, false);
@@ -3453,7 +3441,6 @@
<destructor>
<![CDATA[
- Services.prefs.removeObserver("accessibility.typeaheadfind", this._prefObserver);
Services.prefs.removeObserver("browser.tabs.", this._prefObserver);
]]>
</destructor>
@@ -3519,9 +3506,6 @@
observe: function (subject, topic, data) {
switch (data) {
- case "accessibility.typeaheadfind":
- this._findAsYouType = Services.prefs.getBoolPref(data);
- break;
case "browser.tabs.closeButtons":
this.tabContainer.mCloseButtons = Services.prefs.getIntPref(data);
this.tabContainer.adjustTabstrip();
diff --git a/application/palemoon/branding/shared/pref/preferences.inc b/application/palemoon/branding/shared/pref/preferences.inc
index a3cfcd138..51a1852e6 100644
--- a/application/palemoon/branding/shared/pref/preferences.inc
+++ b/application/palemoon/branding/shared/pref/preferences.inc
@@ -110,6 +110,14 @@ pref("image.mem.decode_bytes_at_a_time", 65536); //larger chunks
// ============================================================================
+// ===| Sync |=================================================================
+
+// Sync server URL
+pref("services.sync.serverURL","https://pmsync.palemoon.org/sync/index.php/");
+pref("services.sync.jpake.serverURL","https://keyserver.palemoon.org/");
+
+// ============================================================================
+
// ===| Misc. |================================================================
// store sessions less frequently to prevent redundant mem usage by storing too much
diff --git a/application/palemoon/components/places/PlacesUIUtils.jsm b/application/palemoon/components/places/PlacesUIUtils.jsm
index dd0695f78..f62535613 100644
--- a/application/palemoon/components/places/PlacesUIUtils.jsm
+++ b/application/palemoon/components/places/PlacesUIUtils.jsm
@@ -1136,6 +1136,33 @@ this.PlacesUIUtils = {
}
}
return queryName;
+ },
+
+ /**
+ * Returns the passed URL with a #moz-resolution fragment
+ * for the specified dimensions and devicePixelRatio.
+ *
+ * @param aWindow
+ * A window from where we want to get the device
+ * pixel Ratio
+ *
+ * @param aURL
+ * The URL where we should add the fragment
+ *
+ * @param aWidth
+ * The target image width
+ *
+ * @param aHeight
+ * The target image height
+ *
+ * @return The URL with the fragment at the end
+ */
+ getImageURLForResolution:
+ function PUIU_getImageURLForResolution(aWindow, aURL, aWidth = 16, aHeight = 16) {
+ let width = Math.round(aWidth * aWindow.devicePixelRatio);
+ let height = Math.round(aHeight * aWindow.devicePixelRatio);
+ return aURL + (aURL.includes("#") ? "&" : "#") +
+ "-moz-resolution=" + width + "," + height;
}
};
diff --git a/application/palemoon/components/places/content/browserPlacesViews.js b/application/palemoon/components/places/content/browserPlacesViews.js
index 4ab80cac6..eec7274a4 100644
--- a/application/palemoon/components/places/content/browserPlacesViews.js
+++ b/application/palemoon/components/places/content/browserPlacesViews.js
@@ -338,7 +338,8 @@ PlacesViewBase.prototype = {
let icon = aPlacesNode.icon;
if (icon)
- element.setAttribute("image", icon);
+ element.setAttribute("image",
+ PlacesUIUtils.getImageURLForResolution(window, icon));
}
element._placesNode = aPlacesNode;
@@ -464,7 +465,8 @@ PlacesViewBase.prototype = {
if (!icon)
elt.removeAttribute("image");
else if (icon != elt.getAttribute("image"))
- elt.setAttribute("image", icon);
+ elt.setAttribute("image",
+ PlacesUIUtils.getImageURLForResolution(window, icon));
},
nodeAnnotationChanged:
@@ -966,7 +968,8 @@ PlacesToolbar.prototype = {
button.setAttribute("label", aChild.title || "");
let icon = aChild.icon;
if (icon)
- button.setAttribute("image", icon);
+ button.setAttribute("image",
+ PlacesUIUtils.getImageURLForResolution(window, icon));
if (PlacesUtils.containerTypes.indexOf(type) != -1) {
button.setAttribute("type", "menu");