summaryrefslogtreecommitdiffstats
path: root/application/palemoon
diff options
context:
space:
mode:
Diffstat (limited to 'application/palemoon')
-rw-r--r--application/palemoon/base/content/newtab/newTab.css1
-rw-r--r--application/palemoon/base/content/tabbrowser.xml137
-rw-r--r--application/palemoon/branding/official/branding.nsi39
-rw-r--r--application/palemoon/branding/unofficial/branding.nsi28
-rw-r--r--application/palemoon/branding/unstable/branding.nsi36
-rw-r--r--application/palemoon/components/nsBrowserGlue.js15
-rw-r--r--application/palemoon/components/permissions/aboutPermissions.js8
-rw-r--r--application/palemoon/components/places/content/editBookmarkOverlay.js5
-rw-r--r--application/palemoon/components/preferences/advanced.js4
-rw-r--r--application/palemoon/components/preferences/security.xul19
-rw-r--r--application/palemoon/components/statusbar/Status.jsm20
-rw-r--r--application/palemoon/components/statusbar/Status4Evar.jsm45
-rw-r--r--application/palemoon/components/statusbar/content-thunk.js23
-rw-r--r--application/palemoon/components/statusbar/moz.build1
-rw-r--r--application/palemoon/installer/windows/Makefile.in4
-rw-r--r--application/palemoon/installer/windows/nsis/defines.nsi.in27
-rw-r--r--application/palemoon/locales/en-US/chrome/browser/permissions/aboutPermissions.dtd2
-rw-r--r--application/palemoon/locales/en-US/chrome/browser/preferences/preferences.properties4
-rw-r--r--application/palemoon/locales/en-US/chrome/browser/preferences/privacy.dtd6
-rw-r--r--application/palemoon/locales/en-US/chrome/browser/preferences/security.dtd4
-rw-r--r--application/palemoon/locales/en-US/installer/nsisstrings.properties67
21 files changed, 199 insertions, 296 deletions
diff --git a/application/palemoon/base/content/newtab/newTab.css b/application/palemoon/base/content/newtab/newTab.css
index fe745d2fd..3c7cfa102 100644
--- a/application/palemoon/base/content/newtab/newTab.css
+++ b/application/palemoon/base/content/newtab/newTab.css
@@ -301,7 +301,6 @@ input[type=button] {
color: black;
border-color: hsla(220,54%,20%,.15) hsla(220,54%,20%,.17) hsla(220,54%,20%,.2);
border-radius: 0 2px 2px 0;
- border-inline-start: 1px solid transparent;
box-shadow: 0 0 2px hsla(0,0%,100%,.5) inset,
0 1px 0 hsla(0,0%,100%,.2);
cursor: pointer;
diff --git a/application/palemoon/base/content/tabbrowser.xml b/application/palemoon/base/content/tabbrowser.xml
index 93818e290..dc6cb0a9d 100644
--- a/application/palemoon/base/content/tabbrowser.xml
+++ b/application/palemoon/base/content/tabbrowser.xml
@@ -2950,19 +2950,6 @@
onget="return this.mCurrentBrowser.docShell"
readonly="true"/>
- <property name="messageManager"
- readonly="true">
- <getter>
- <![CDATA[
- let frameLoader = this.mCurrentBrowser.frameLoader;
- if (!frameLoader) {
- return null;
- }
- return frameLoader.messageManager;
- ]]>
- </getter>
- </property>
-
<property name="webNavigation"
onget="return this.mCurrentBrowser.webNavigation"
readonly="true"/>
@@ -4296,17 +4283,76 @@
event.originalTarget.localName != "box")
return;
- // See hack note in the tabbrowser-close-tab-button binding
+ // See comments in the "mousedown" and "click" event handlers of the
+ // tabbrowser-tabs binding.
if (!this._blockDblClick)
BrowserOpenTab();
event.preventDefault();
]]></handler>
- <handler event="click"><![CDATA[
- if (event.button != 1)
- return;
+ <!-- Consider that the in-tab close button is only shown on the active
+ tab. When clicking on an inactive tab at the position where the
+ close button will appear during the click, no "click" event will be
+ dispatched, because the mousedown and mouseup events don't have the
+ same event target. For that reason use "mousedown" instead of "click"
+ to implement in-tab close button behavior. (Pale Moon UXP issue #775)
+ -->
+ <handler event="mousedown" button="0" phase="capturing"><![CDATA[
+ /* The only sequence in which a second click event (i.e. dblclik)
+ * can be dispatched on an in-tab close button is when it is shown
+ * after the first click (i.e. the first click event was dispatched
+ * on the tab). This happens when we show the close button only on
+ * the active tab. (bug 352021)
+ * The only sequence in which a third click event can be dispatched
+ * on an in-tab close button is when the tab was opened with a
+ * double click on the tabbar. (bug 378344)
+ * In both cases, it is most likely that the close button area has
+ * been accidentally clicked, therefore we do not close the tab.
+ *
+ * We don't want to ignore processing of more than one click event,
+ * though, since the user might actually be repeatedly clicking to
+ * close many tabs at once.
+ *
+ * Also prevent errant doubleclick on the close button from opening
+ * a new tab (bug 343628):
+ * Since we're removing the event target, if the user double-clicks
+ * the button, the dblclick event will be dispatched with the tabbar
+ * as its event target (and explicit/originalTarget), which treats
+ * that as a mouse gesture for opening a new tab.
+ * In this context, we're manually blocking the dblclick event.
+ */
+
+ // Reset flags at the beginning of a series of clicks:
+ if (event.detail == 1) {
+ this.flagClickOnCloseButton = false;
+ this.flagActivateTabOrClickOnTabbar = false;
+ }
+
+ this.blockCloseButtonOnDblclick = this.flagActivateTabOrClickOnTabbar;
+ this._blockDblClick = this.flagClickOnCloseButton;
+ // Set flags:
+ let eventTargetIsCloseButton =
+ event.originalTarget.classList.contains("tab-close-button");
+ this.flagClickOnCloseButton = eventTargetIsCloseButton;
+ this.flagActivateTabOrClickOnTabbar =
+ ((!eventTargetIsCloseButton && event.detail == 1) ||
+ event.originalTarget.localName == "box");
+ ]]></handler>
+
+ <handler event="click" button="0"><![CDATA[
+ // See comment in the "mousedown" event handler of the
+ // tabbrowser-tabs binding.
+ if (event.originalTarget.classList.contains("tab-close-button") &&
+ !this.blockCloseButtonOnDblclick) {
+ gBrowser.removeTab(document.getBindingParent(event.originalTarget),
+ {animate: true, byMouse: true,});
+ this._blockDblClick = true;
+ }
+ ]]></handler>
+
+ <handler event="click" button="1"><![CDATA[
if (event.target.localName == "tab") {
if (this.childNodes.length > 1 || !this._closeWindowWithLastTab)
this.tabbrowser.removeTab(event.target, {animate: true, byMouse: true});
@@ -4679,63 +4725,6 @@
<binding id="tabbrowser-close-tab-button"
extends="chrome://global/content/bindings/toolbarbutton.xml#toolbarbutton-image">
<handlers>
- <handler event="click" button="0"><![CDATA[
- var bindingParent = document.getBindingParent(this);
- var tabContainer = bindingParent.parentNode;
- /* The only sequence in which a second click event (i.e. dblclik)
- * can be dispatched on an in-tab close button is when it is shown
- * after the first click (i.e. the first click event was dispatched
- * on the tab). This happens when we show the close button only on
- * the active tab. (bug 352021)
- * The only sequence in which a third click event can be dispatched
- * on an in-tab close button is when the tab was opened with a
- * double click on the tabbar. (bug 378344)
- * In both cases, it is most likely that the close button area has
- * been accidentally clicked, therefore we do not close the tab.
- *
- * We don't want to ignore processing of more than one click event,
- * though, since the user might actually be repeatedly clicking to
- * close many tabs at once.
- */
- if (event.detail > 1 && !this._ignoredClick) {
- this._ignoredClick = true;
- return;
- }
-
- // Reset the "ignored click" flag
- this._ignoredClick = false;
-
- tabContainer.tabbrowser.removeTab(bindingParent, {animate: true, byMouse: true});
- tabContainer._blockDblClick = true;
-
- /* XXXmano hack (see bug 343628):
- * Since we're removing the event target, if the user
- * double-clicks this button, the dblclick event will be dispatched
- * with the tabbar as its event target (and explicit/originalTarget),
- * which treats that as a mouse gesture for opening a new tab.
- * In this context, we're manually blocking the dblclick event
- * (see dblclick handler).
- */
- var clickedOnce = false;
- function enableDblClick(event) {
- var target = event.originalTarget;
- if (target.className == 'tab-close-button')
- target._ignoredClick = true;
- if (!clickedOnce) {
- clickedOnce = true;
- return;
- }
- tabContainer._blockDblClick = false;
- tabContainer.removeEventListener("click", enableDblClick, true);
- }
- tabContainer.addEventListener("click", enableDblClick, true);
- ]]></handler>
-
- <handler event="dblclick" button="0" phase="capturing">
- // for the one-close-button case
- event.stopPropagation();
- </handler>
-
<handler event="dragstart">
event.stopPropagation();
</handler>
diff --git a/application/palemoon/branding/official/branding.nsi b/application/palemoon/branding/official/branding.nsi
index 2b6dbe7bd..3bceda900 100644
--- a/application/palemoon/branding/official/branding.nsi
+++ b/application/palemoon/branding/official/branding.nsi
@@ -11,39 +11,6 @@
!define BrandFullNameInternal "Pale Moon"
!define CompanyName "Moonchild Productions"
!define URLInfoAbout "http://www.palemoon.org/"
-!define URLUpdateInfo "http://www.palemoon.org/releasenotes-ng.shtml"
-
-; The OFFICIAL define is a workaround to support different urls for Release and
-; Beta since they share the same branding when building with other branches that
-; set the update channel to beta.
-!define OFFICIAL
-!define URLStubDownload ""
-!define URLManualDownload "http://www.palemoon.org/download-ng.shtml"
-!define Channel "release"
-
-# The installer's certificate name and issuer expected by the stub installer
-# !define CertNameDownload "Mozilla Corporation"
-# !define CertIssuerDownload "Thawte Code Signing CA - G2"
-
-# Dialog units are used so the UI displays correctly with the system's DPI
-# settings.
-# The dialog units for the bitmap's dimensions should match exactly with the
-# bitmap's width and height in pixels.
-!define APPNAME_BMP_WIDTH_DU "134u"
-!define APPNAME_BMP_HEIGHT_DU "36u"
-!define INTRO_BLURB_WIDTH_DU "258u"
-!define INTRO_BLURB_EDGE_DU "170u"
-!define INTRO_BLURB_LTR_TOP_DU "20u"
-!define INTRO_BLURB_RTL_TOP_DU "12u"
-
-# UI Colors that can be customized for each channel
-!define FOOTER_CONTROL_TEXT_COLOR_NORMAL 0x000033
-!define FOOTER_CONTROL_TEXT_COLOR_FADED 0x666699
-!define FOOTER_BKGRD_COLOR 0xFFFFFF
-!define INTRO_BLURB_TEXT_COLOR 0x666699
-!define OPTIONS_TEXT_COLOR_NORMAL 0x000000
-!define OPTIONS_TEXT_COLOR_FADED 0x666699
-!define OPTIONS_BKGRD_COLOR 0xF0F0F0
-!define INSTALL_BLURB_TEXT_COLOR 0x666699
-!define INSTALL_PROGRESS_TEXT_COLOR_NORMAL 0x666699
-!define INSTALL_PROGRESS_TEXT_COLOR_FADED 0x9999C0
+!define URLUpdateInfo "http://www.palemoon.org/releasenotes.shtml"
+!define HelpLink "http://www.palemoon.org/troubleshooting.shtml"
+!define URLSystemRequirements "http://www.palemoon.org/download.shtml"
diff --git a/application/palemoon/branding/unofficial/branding.nsi b/application/palemoon/branding/unofficial/branding.nsi
index cf1642eaf..62ed242a2 100644
--- a/application/palemoon/branding/unofficial/branding.nsi
+++ b/application/palemoon/branding/unofficial/branding.nsi
@@ -12,29 +12,5 @@
!define CompanyName "Moonchild Productions"
!define URLInfoAbout "http://www.palemoon.org"
!define URLUpdateInfo "http://www.palemoon.org"
-
-!define URLManualDownload "http://www.palemoon.org/download-ng.shtml"
-!define Channel "unofficial"
-
-# Dialog units are used so the UI displays correctly with the system's DPI
-# settings.
-# The dialog units for the bitmap's dimensions should match exactly with the
-# bitmap's width and height in pixels.
-!define APPNAME_BMP_WIDTH_DU 159u
-!define APPNAME_BMP_HEIGHT_DU 26u
-!define INTRO_BLURB_WIDTH_DU "230u"
-!define INTRO_BLURB_EDGE_DU "198u"
-!define INTRO_BLURB_LTR_TOP_DU "16u"
-!define INTRO_BLURB_RTL_TOP_DU "11u"
-
-# UI Colors that can be customized for each channel
-!define FOOTER_CONTROL_TEXT_COLOR_NORMAL 0x000000
-!define FOOTER_CONTROL_TEXT_COLOR_FADED 0x999999
-!define FOOTER_BKGRD_COLOR 0xFFFFFF
-!define INTRO_BLURB_TEXT_COLOR 0xFFFFFF
-!define OPTIONS_TEXT_COLOR_NORMAL 0xFFFFFF
-!define OPTIONS_TEXT_COLOR_FADED 0xA1AAB3
-!define OPTIONS_BKGRD_COLOR 0x0F1B26
-!define INSTALL_BLURB_TEXT_COLOR 0xFFFFFF
-!define INSTALL_PROGRESS_TEXT_COLOR_NORMAL 0xFFFFFF
-!define INSTALL_PROGRESS_TEXT_COLOR_FADED 0xA1AAB3
+!define HelpLink "http://www.palemoon.org"
+!define URLSystemRequirements "http://www.palemoon.org/download.shtml"
diff --git a/application/palemoon/branding/unstable/branding.nsi b/application/palemoon/branding/unstable/branding.nsi
index 4a9199b22..535cfde33 100644
--- a/application/palemoon/branding/unstable/branding.nsi
+++ b/application/palemoon/branding/unstable/branding.nsi
@@ -11,36 +11,6 @@
!define BrandFullNameInternal "Pale Moon"
!define CompanyName "Moonchild Productions"
!define URLInfoAbout "http://www.palemoon.org/"
-!define URLUpdateInfo "http://www.palemoon.org/unstable.shtml"
-
-; The OFFICIAL define is a workaround to support different urls for Release and
-; Beta since they share the same branding when building with other branches that
-; set the update channel to beta.
-!define OFFICIAL
-!define URLStubDownload ""
-!define URLManualDownload "http://www.palemoon.org/unstable.shtml"
-!define Channel "unstable"
-
-
-# Dialog units are used so the UI displays correctly with the system's DPI
-# settings.
-# The dialog units for the bitmap's dimensions should match exactly with the
-# bitmap's width and height in pixels.
-!define APPNAME_BMP_WIDTH_DU "134u"
-!define APPNAME_BMP_HEIGHT_DU "36u"
-!define INTRO_BLURB_WIDTH_DU "258u"
-!define INTRO_BLURB_EDGE_DU "170u"
-!define INTRO_BLURB_LTR_TOP_DU "20u"
-!define INTRO_BLURB_RTL_TOP_DU "12u"
-
-# UI Colors that can be customized for each channel
-!define FOOTER_CONTROL_TEXT_COLOR_NORMAL 0x000033
-!define FOOTER_CONTROL_TEXT_COLOR_FADED 0x666699
-!define FOOTER_BKGRD_COLOR 0xFFFFFF
-!define INTRO_BLURB_TEXT_COLOR 0x666699
-!define OPTIONS_TEXT_COLOR_NORMAL 0x000000
-!define OPTIONS_TEXT_COLOR_FADED 0x666699
-!define OPTIONS_BKGRD_COLOR 0xF0F0F0
-!define INSTALL_BLURB_TEXT_COLOR 0x666699
-!define INSTALL_PROGRESS_TEXT_COLOR_NORMAL 0x666699
-!define INSTALL_PROGRESS_TEXT_COLOR_FADED 0x9999C0
+!define URLUpdateInfo "http://www.palemoon.org/unstable/"
+!define HelpLink "http://www.palemoon.org/unstable/"
+!define URLSystemRequirements "http://www.palemoon.org/download.shtml"
diff --git a/application/palemoon/components/nsBrowserGlue.js b/application/palemoon/components/nsBrowserGlue.js
index 720d1165c..f0a7aa22a 100644
--- a/application/palemoon/components/nsBrowserGlue.js
+++ b/application/palemoon/components/nsBrowserGlue.js
@@ -152,6 +152,9 @@ BrowserGlue.prototype = {
// nsIObserver implementation
observe: function BG_observe(subject, topic, data) {
switch (topic) {
+ case "notifications-open-settings":
+ this._openPermissions(subject);
+ break;
case "prefservice:after-app-defaults":
this._onAppDefaults();
break;
@@ -322,6 +325,7 @@ BrowserGlue.prototype = {
// initialization (called on application startup)
_init: function BG__init() {
let os = Services.obs;
+ os.addObserver(this, "notifications-open-settings", false);
os.addObserver(this, "prefservice:after-app-defaults", false);
os.addObserver(this, "final-ui-startup", false);
os.addObserver(this, "browser-delayed-startup-finished", false);
@@ -354,6 +358,7 @@ BrowserGlue.prototype = {
// cleanup (called on application shutdown)
_dispose: function BG__dispose() {
let os = Services.obs;
+ os.removeObserver(this, "notifications-open-settings");
os.removeObserver(this, "prefservice:after-app-defaults");
os.removeObserver(this, "final-ui-startup");
os.removeObserver(this, "sessionstore-windows-restored");
@@ -1484,6 +1489,16 @@ BrowserGlue.prototype = {
}
},
+ _openPermissions: function(aPrincipal) {
+ var win = this.getMostRecentBrowserWindow();
+ var url = "about:permissions";
+ try {
+ url = url + "?filter=" + aPrincipal.URI.host;
+ }
+ catch (e) {}
+ win.openUILinkIn(url, "tab");
+ },
+
_hasSystemAlertsService: function() {
try {
return !!Cc["@mozilla.org/system-alerts-service;1"].getService(
diff --git a/application/palemoon/components/permissions/aboutPermissions.js b/application/palemoon/components/permissions/aboutPermissions.js
index 6a02daa29..421b65a0e 100644
--- a/application/palemoon/components/permissions/aboutPermissions.js
+++ b/application/palemoon/components/permissions/aboutPermissions.js
@@ -516,6 +516,14 @@ var AboutPermissions = {
Services.obs.notifyObservers(null, "browser-permissions-preinit", null);
this._initPart2();
+
+ // Process about:permissions?filter=<string>
+ // About URIs don't support query params, so do this manually
+ var loc = document.location.href;
+ var matches = /[?&]filter\=([^&]+)/i.exec(loc);
+ if (matches) {
+ this.sitesFilter.value = decodeURIComponent(matches[1]);
+ }
},
sitesReload: function() {
diff --git a/application/palemoon/components/places/content/editBookmarkOverlay.js b/application/palemoon/components/places/content/editBookmarkOverlay.js
index 69d7d32eb..e3d4537c7 100644
--- a/application/palemoon/components/places/content/editBookmarkOverlay.js
+++ b/application/palemoon/components/places/content/editBookmarkOverlay.js
@@ -222,6 +222,11 @@ var gEditItemOverlay = {
}
let focusElement = () => {
+ let elt = document.querySelector("textbox:not([collapsed=true])");
+ if (elt) {
+ elt.focus();
+ elt.select();
+ }
this._initialized = true;
};
diff --git a/application/palemoon/components/preferences/advanced.js b/application/palemoon/components/preferences/advanced.js
index 0803496fe..aab58b386 100644
--- a/application/palemoon/components/preferences/advanced.js
+++ b/application/palemoon/components/preferences/advanced.js
@@ -455,7 +455,7 @@ var gAdvancedPane = {
var list = document.getElementById("offlineAppsList");
var item = list.selectedItem;
var origin = item.getAttribute("origin");
- var principal = BrowserUtils.principalFromOrigin(origin);
+ var principal = Services.scriptSecurityManager.createCodebasePrincipalFromOrigin(origin);
var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
.getService(Components.interfaces.nsIPromptService);
@@ -474,7 +474,7 @@ var gAdvancedPane = {
// get the permission
var pm = Components.classes["@mozilla.org/permissionmanager;1"]
.getService(Components.interfaces.nsIPermissionManager);
- var perm = pm.getPermissionObject(principal, "offline-app");
+ var perm = pm.getPermissionObject(principal, "offline-app", true);
if (perm) {
// clear offline cache entries
try {
diff --git a/application/palemoon/components/preferences/security.xul b/application/palemoon/components/preferences/security.xul
index d3d321b16..b12946f2a 100644
--- a/application/palemoon/components/preferences/security.xul
+++ b/application/palemoon/components/preferences/security.xul
@@ -50,6 +50,15 @@
name="security.cert_pinning.enforcement_level"
type="int"/>
+ <!-- Opportunistic Encryption -->
+
+ <preference id="network.http.upgrade-insecure-requests"
+ name="network.http.upgrade-insecure-requests"
+ type="bool"/>
+ <preference id="network.http.altsvc.oe"
+ name="network.http.altsvc.oe"
+ type="bool"/>
+
<!-- XSS Filter -->
<!--
<preference id="security.xssfilter.enable" name="security.xssfilter.enable" type="bool"/>
@@ -144,6 +153,16 @@
oncommand="gSecurityPane.updateHPKPPref();"/>
</vbox>
</groupbox>
+
+ <groupbox id="OpportunisticEncryption">
+ <caption label="&OpEnc.label;"/>
+ <checkbox id="enableUIROpEnc"
+ label="&enableUIROpEnc.label;"
+ preference="network.http.upgrade-insecure-requests" />
+ <checkbox id="enableAltSvcOpEnc"
+ label="&enableAltSvcOpEnc.label;"
+ preference="network.http.altsvc.oe" />
+ </groupbox>
<!-- XSS Filter -->
<!--
diff --git a/application/palemoon/components/statusbar/Status.jsm b/application/palemoon/components/statusbar/Status.jsm
index d888c7d94..19e12ddfd 100644
--- a/application/palemoon/components/statusbar/Status.jsm
+++ b/application/palemoon/components/statusbar/Status.jsm
@@ -35,7 +35,7 @@ S4EStatusService.prototype =
_defaultStatus: { val: "", type: "" },
_isFullScreen: false,
- _isFullScreenVideo: false,
+ _isVideo: false,
_statusText: { val: "", type: "" },
_noUpdate: false,
@@ -222,18 +222,10 @@ S4EStatusService.prototype =
}
},
- updateFullScreen: function()
+ setFullScreenState: function(isFullScreen, isVideo)
{
- this._isFullScreen = this._window.fullScreen;
- this._isFullScreenVideo = false;
- if(this._isFullScreen)
- {
- let fsEl = this._window.content.document.mozFullScreenElement;
- if(fsEl && (fsEl.nodeName == "VIDEO" || fsEl.getElementsByTagName("VIDEO").length > 0))
- {
- this._isFullScreenVideo = true;
- }
- }
+ this._isFullScreen = isFullScreen;
+ this._isVideo = isFullScreen && isVideo;
this.clearStatusField();
this.updateStatusField(true);
@@ -305,7 +297,7 @@ S4EStatusService.prototype =
let label = null;
- if(this._isFullScreen && this._service.advancedStatusDetectFullScreen)
+ if(this._isFullScreen)
{
switch(location)
{
@@ -330,7 +322,7 @@ S4EStatusService.prototype =
break;
case 3: // Popup
default:
- if(this._isFullScreenVideo && this._service.advancedStatusDetectVideo)
+ if(this._isVideo)
{
return;
}
diff --git a/application/palemoon/components/statusbar/Status4Evar.jsm b/application/palemoon/components/statusbar/Status4Evar.jsm
index 055306a88..6400f2e2a 100644
--- a/application/palemoon/components/statusbar/Status4Evar.jsm
+++ b/application/palemoon/components/statusbar/Status4Evar.jsm
@@ -31,7 +31,7 @@ function Status4Evar(window, gBrowser, toolbox)
this.statusService = new S4EStatusService(this._window, s4e_service, this.getters);
this.progressMeter = new S4EProgressService(gBrowser, s4e_service, this.getters, this.statusService);
this.downloadStatus = new S4EDownloadService(this._window, gBrowser, s4e_service, this.getters);
- this.sizeModeService = new SizeModeService(this._window, this);
+ this.sizeModeService = new SizeModeService(this._window, gBrowser, this);
this._window.addEventListener("unload", this, false);
}
@@ -232,20 +232,31 @@ S4EWindowGetters.prototype =
}
};
-function SizeModeService(window, s4e)
+function SizeModeService(window, gBrowser, s4e)
{
this._window = window;
+ this._gBrowser = gBrowser;
this._s4e = s4e;
+ this._mm = this._window.messageManager;
this.lastFullScreen = this._window.fullScreen;
this.lastwindowState = this._window.windowState;
+
+ if(s4e_service.advancedStatusDetectFullScreen)
+ {
+ this._mm.addMessageListener("status4evar@caligonstudios.com:video-detect-answer", this)
+ this._mm.loadFrameScript("resource:///modules/statusbar/content-thunk.js", true);
+ }
+
this._window.addEventListener("sizemodechange", this, false);
}
SizeModeService.prototype =
{
_window: null,
+ _gBrowser: null,
_s4e: null,
+ _mm: null,
lastFullScreen: null,
lastwindowState: null,
@@ -254,7 +265,13 @@ SizeModeService.prototype =
{
this._window.removeEventListener("sizemodechange", this, false);
- ["_window", "_s4e"].forEach(function(prop)
+ if(s4e_service.advancedStatusDetectFullScreen)
+ {
+ this._mm.removeDelayedFrameScript("resource:///modules/statusbar/content-thunk.js");
+ this._mm.removeMessageListener("status4evar@caligonstudios.com:video-detect-answer", this);
+ }
+
+ ["_window", "_gBrowser", "_s4e", "_mm"].forEach(function(prop)
{
delete this[prop];
}, this);
@@ -262,10 +279,18 @@ SizeModeService.prototype =
handleEvent: function(e)
{
- if(this._window.fullScreen != this.lastFullScreen)
+ if(this._window.fullScreen != this.lastFullScreen && s4e_service.advancedStatusDetectFullScreen)
{
this.lastFullScreen = this._window.fullScreen;
- this._s4e.statusService.updateFullScreen();
+
+ if(this.lastFullScreen && s4e_service.advancedStatusDetectVideo)
+ {
+ this._gBrowser.selectedBrowser.messageManager.sendAsyncMessage("status4evar@caligonstudios.com:video-detect");
+ }
+ else
+ {
+ this._s4e.statusService.setFullScreenState(this.lastFullScreen, false);
+ }
}
if(this._window.windowState != this.lastwindowState)
@@ -275,5 +300,13 @@ SizeModeService.prototype =
}
},
- QueryInterface: XPCOMUtils.generateQI([ CI.nsIDOMEventListener ])
+ receiveMessage: function(message)
+ {
+ if(message.name == "status4evar@caligonstudios.com:video-detect-answer")
+ {
+ this._s4e.statusService.setFullScreenState(this.lastFullScreen, message.data.isVideo);
+ }
+ },
+
+ QueryInterface: XPCOMUtils.generateQI([ CI.nsIDOMEventListener, CI.nsIMessageListener ])
};
diff --git a/application/palemoon/components/statusbar/content-thunk.js b/application/palemoon/components/statusbar/content-thunk.js
new file mode 100644
index 000000000..fe1fbabad
--- /dev/null
+++ b/application/palemoon/components/statusbar/content-thunk.js
@@ -0,0 +1,23 @@
+/* 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/. */
+
+function handleVideoDetect(message)
+{
+ let isVideo = false;
+
+ let fsEl = content.document.mozFullScreenElement;
+ if(fsEl)
+ {
+ isVideo = (
+ fsEl.nodeName == "VIDEO"
+ || (fsEl.nodeName == "IFRAME" && fsEl.contentDocument && fsEl.contentDocument.getElementsByTagName("VIDEO").length > 0)
+ || fsEl.getElementsByTagName("VIDEO").length > 0
+ );
+ }
+
+ sendAsyncMessage("status4evar@caligonstudios.com:video-detect-answer", {isVideo: isVideo});
+}
+
+addMessageListener("status4evar@caligonstudios.com:video-detect", handleVideoDetect);
+
diff --git a/application/palemoon/components/statusbar/moz.build b/application/palemoon/components/statusbar/moz.build
index ba8cfef86..0f7f597a5 100644
--- a/application/palemoon/components/statusbar/moz.build
+++ b/application/palemoon/components/statusbar/moz.build
@@ -16,6 +16,7 @@ EXTRA_COMPONENTS += [
]
EXTRA_JS_MODULES.statusbar = [
+ 'content-thunk.js',
'Downloads.jsm',
'Progress.jsm',
'Status.jsm',
diff --git a/application/palemoon/installer/windows/Makefile.in b/application/palemoon/installer/windows/Makefile.in
index 7ba70d912..9b0f697c8 100644
--- a/application/palemoon/installer/windows/Makefile.in
+++ b/application/palemoon/installer/windows/Makefile.in
@@ -79,10 +79,6 @@ $(CONFIG_DIR)/setup.exe::
$(PYTHON) $(topsrcdir)/toolkit/mozapps/installer/windows/nsis/preprocess-locale.py \
--preprocess-locale $(topsrcdir) \
$(PPL_LOCALE_ARGS) $(AB_CD) $(CONFIG_DIR)
- $(PYTHON) $(topsrcdir)/toolkit/mozapps/installer/windows/nsis/preprocess-locale.py \
- --preprocess-single-file $(topsrcdir) \
- $(PPL_LOCALE_ARGS) $(CONFIG_DIR) \
- nsisstrings.properties nsisstrings.nlf
GARBARGE_DIRS += instgen
diff --git a/application/palemoon/installer/windows/nsis/defines.nsi.in b/application/palemoon/installer/windows/nsis/defines.nsi.in
index 97422c4f6..edef802a9 100644
--- a/application/palemoon/installer/windows/nsis/defines.nsi.in
+++ b/application/palemoon/installer/windows/nsis/defines.nsi.in
@@ -3,23 +3,6 @@
# 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/.
-# Defining FunnelcakeVersion will append the value of StubURLVersionAppend to
-# StubURLVersion, append the value of URLManualDownloadAppend to
-# URLManualDownload, and append the value of URLStubDownloadAppend to
-# URLStubDownload. The value of FunnelcakeVersion should not be defined when it
-# is not used and when it is defined its value should never be empty.
-# !define FunnelcakeVersion "999"
-
-!ifdef FunnelcakeVersion
-!define URLManualDownloadAppend "&f=${FunnelcakeVersion}"
-!define URLStubDownloadAppend "-f${FunnelcakeVersion}"
-!define StubURLVersionAppend "-${FunnelcakeVersion}"
-!else
-!define URLManualDownloadAppend ""
-!define URLStubDownloadAppend ""
-!define StubURLVersionAppend ""
-!endif
-
# These defines should match application.ini settings
!define AppName "Pale Moon"
!define AppVersion "@APP_VERSION@"
@@ -84,13 +67,3 @@ VIAddVersionKey "FileVersion" "${AppVersion}"
VIAddVersionKey "ProductVersion" "${AppVersion}"
# Comments is not used but left below commented out for future reference
# VIAddVersionKey "Comments" "Comments"
-
-# Control positions in Dialog Units so they are placed correctly with
-# non-default DPI settings
-!define OPTIONS_ITEM_EDGE_DU 90u
-!define OPTIONS_ITEM_WIDTH_DU 356u
-!define OPTIONS_SUBITEM_EDGE_DU 119u
-!define OPTIONS_SUBITEM_WIDTH_DU 327u
-!define INSTALL_BLURB_TOP_DU 78u
-!define APPNAME_BMP_EDGE_DU 19u
-!define APPNAME_BMP_TOP_DU 12u
diff --git a/application/palemoon/locales/en-US/chrome/browser/permissions/aboutPermissions.dtd b/application/palemoon/locales/en-US/chrome/browser/permissions/aboutPermissions.dtd
index 2030d4f59..5b220a7f0 100644
--- a/application/palemoon/locales/en-US/chrome/browser/permissions/aboutPermissions.dtd
+++ b/application/palemoon/locales/en-US/chrome/browser/permissions/aboutPermissions.dtd
@@ -32,7 +32,7 @@
<!ENTITY image.label "Load Images">
-<!ENTITY cookie.label "Set Cookies">
+<!ENTITY cookie.label "Store Cookies and Site Data">
<!ENTITY cookie.remove "Remove Cookies">
<!ENTITY cookie.manage "Manage Cookies…">
<!ENTITY cookie.removeAll "Remove All Cookies">
diff --git a/application/palemoon/locales/en-US/chrome/browser/preferences/preferences.properties b/application/palemoon/locales/en-US/chrome/browser/preferences/preferences.properties
index b262eebf5..34f167586 100644
--- a/application/palemoon/locales/en-US/chrome/browser/preferences/preferences.properties
+++ b/application/palemoon/locales/en-US/chrome/browser/preferences/preferences.properties
@@ -8,8 +8,8 @@ labelDefaultFont=Default (%S)
#### Permissions Manager
-cookiepermissionstext=You can specify which websites are always or never allowed to use cookies. Type the exact address of the site you want to manage and then click Block, Allow for Session, or Allow.
-cookiepermissionstitle=Exceptions - Cookies
+cookiepermissionstext=You can specify which websites are always or never allowed to use cookies or store site data. Type the exact address of the site you want to manage and then click Block, Allow for Session, or Allow.
+cookiepermissionstitle=Exceptions - Cookies and Site Data
addonspermissionstext=You can specify which websites are allowed to install add-ons. Type the exact address of the site you want to allow and then click Allow.
addons_permissions_title=Allowed Sites - Add-ons Installation
popuppermissionstext=You can specify which websites are allowed to open pop-up windows. Type the exact address of the site you want to allow and then click Allow.
diff --git a/application/palemoon/locales/en-US/chrome/browser/preferences/privacy.dtd b/application/palemoon/locales/en-US/chrome/browser/preferences/privacy.dtd
index ef3303b94..37f8b78c0 100644
--- a/application/palemoon/locales/en-US/chrome/browser/preferences/privacy.dtd
+++ b/application/palemoon/locales/en-US/chrome/browser/preferences/privacy.dtd
@@ -20,10 +20,10 @@
<!ENTITY locbar.openpage.label "Open tabs">
<!ENTITY locbar.openpage.accesskey "O">
-<!ENTITY acceptCookies.label "Accept cookies from sites">
+<!ENTITY acceptCookies.label "Allow sites to store cookies and data">
<!ENTITY acceptCookies.accesskey "A">
-<!ENTITY acceptThirdParty.pre.label "Accept third-party cookies:">
+<!ENTITY acceptThirdParty.pre.label "Accept third-party cookies and site data:">
<!ENTITY acceptThirdParty.pre.accesskey "c">
<!ENTITY acceptThirdParty.always.label "Always">
<!ENTITY acceptThirdParty.never.label "Never">
@@ -48,7 +48,7 @@
<!ENTITY historyHeader.custom.label "Use custom settings for history">
<!ENTITY historyHeader.post.label "">
-<!ENTITY rememberDescription.label "&brandShortName; will remember your browsing, download, form and search history, and keep cookies from websites you visit.">
+<!ENTITY rememberDescription.label "&brandShortName; will remember your browsing, download, form and search history, and keep cookies and site data from websites you visit.">
<!-- LOCALIZATION NOTE (rememberActions.pre.label): include a trailing space as needed -->
<!-- LOCALIZATION NOTE (rememberActions.middle.label): include a starting and trailing space as needed -->
diff --git a/application/palemoon/locales/en-US/chrome/browser/preferences/security.dtd b/application/palemoon/locales/en-US/chrome/browser/preferences/security.dtd
index 2bd3b3aec..930736d56 100644
--- a/application/palemoon/locales/en-US/chrome/browser/preferences/security.dtd
+++ b/application/palemoon/locales/en-US/chrome/browser/preferences/security.dtd
@@ -40,6 +40,10 @@
<!ENTITY enableHPKP.label "Enable Certificate Key Pinning (HPKP)">
<!ENTITY enableHPKP.accesskey "C">
+<!ENTITY OpEnc.label "Opportunistic Encryption (OE)">
+<!ENTITY enableUIROpEnc.label "Enable Upgrade Insecure Requests">
+<!ENTITY enableAltSvcOpEnc.label "Enable HTTP Alternative Services for OE">
+
<!ENTITY XSSFilt.label "XSS Filter">
<!ENTITY enableXSSFilt.label "Enable XSS filter">
<!ENTITY enableXSSFilt.accesskey "f">
diff --git a/application/palemoon/locales/en-US/installer/nsisstrings.properties b/application/palemoon/locales/en-US/installer/nsisstrings.properties
deleted file mode 100644
index fc2898860..000000000
--- a/application/palemoon/locales/en-US/installer/nsisstrings.properties
+++ /dev/null
@@ -1,67 +0,0 @@
-# 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/.
-
-# LOCALIZATION NOTE:
-
-# This file must be saved as UTF8
-
-# Accesskeys are defined by prefixing the letter that is to be used for the
-# accesskey with an ampersand (e.g. &).
-
-# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
-# custom string and always use the same one as used by the en-US files.
-# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
-# for double ampersand) and prevents the letter following the ampersand from
-# being used as an accesskey.
-
-# You can use \n to create a newline in the string but only when the string
-# from en-US contains a \n.
-
-WIN_CAPTION=$BrandShortName Setup
-
-INTRO_BLURB1=Thanks for choosing $BrandFullName, the browser that chooses you above everything else.
-INSTALL_BLURB1=You're about to enjoy the very latest in speed, flexibility and security so you're always in control.
-INSTALL_BLURB2=That's because $BrandShortName is made by a non-profit to make browsing and the Web better for you.
-INSTALL_BLURB3=You're also joining a global community of users, contributors and developers working to make the best browser in the world.
-
-WARN_MIN_SUPPORTED_OSVER_MSG=Sorry, $BrandShortName can't be installed. This version of $BrandShortName requires ${MinSupportedVer} or newer.
-WARN_MIN_SUPPORTED_CPU_MSG=Sorry, $BrandShortName can't be installed. This version of $BrandShortName requires a processor with ${MinSupportedCPU} support.
-WARN_MIN_SUPPORTED_OSVER_CPU_MSG=Sorry, $BrandShortName can't be installed. This version of $BrandShortName requires ${MinSupportedVer} or newer and a processor with ${MinSupportedCPU} support.
-WARN_WRITE_ACCESS=You don't have access to write to the installation directory.\n\nClick OK to select a different directory.
-WARN_DISK_SPACE=You don't have sufficient disk space to install to this location.\n\nClick OK to select a different location.
-WARN_ROOT_INSTALL=Unable to install to the root of your disk.\n\nClick OK to select a different location.
-WARN_MANUALLY_CLOSE_APP_LAUNCH=$BrandShortName is already running.\n\nPlease close $BrandShortName prior to launching the version you have just installed.
-
-ERROR_DOWNLOAD=Your download was interrupted.\n\nPlease click the OK button to continue.
-
-INSTALL_BUTTON=&Install
-UPGRADE_BUTTON=&Upgrade
-CANCEL_BUTTON=Cancel
-OPTIONS_BUTTON=&Options
-
-MAKE_DEFAULT=&Make $BrandShortName my default browser
-CREATE_SHORTCUTS=Create Shortcuts for $BrandShortName:
-ADD_SC_TASKBAR=On my &Task bar
-ADD_SC_QUICKLAUNCHBAR=On my &Quick Launch bar
-ADD_CheckboxShortcutInStartMenu=In my &Start Menu Programs Folder
-ADD_CheckboxShortcutOnDesktop=On my &Desktop
-SPACE_REQUIRED=Space Required:
-SPACE_AVAILABLE=Space Available:
-ONE_MOMENT_INSTALL=One moment, $BrandShortName will launch as soon as the install is complete…
-ONE_MOMENT_UPGRADE=One moment, $BrandShortName will launch as soon as the upgrade is complete…
-INSTALL_MAINT_SERVICE=&Install the $BrandShortName background update service
-SEND_PING=S&end information about this installation to Mozilla
-BROWSE_BUTTON=B&rowse…
-DEST_FOLDER=Destination Folder
-
-DOWNLOADING_LABEL=Downloading $BrandShortName…
-INSTALLING_LABEL=Installing $BrandShortName…
-UPGRADING_LABEL=Upgrading $BrandShortName…
-
-SELECT_FOLDER_TEXT=Select the folder to install $BrandShortName in.
-
-BYTE=B
-KILO=K
-MEGA=M
-GIGA=G