forked from pool/MozillaFirefox
- update to Firefox 60.0
* Added a policy engine that allows customized Firefox deployments in enterprise environments, using Windows Group Policy or a cross-platform JSON file * Applied Quantum CSS to render browser UI * Added support for Web Authentication, allowing the use of USB tokens for authentication to web sites * Locale added: Occitan (oc) - removed obsolete patches 0001-Bug-1435695-WebRTC-fails-to-build-with-GCC-8-r-dmino.patch - requires NSPR 4.19 and NSS 3.36.1 - requires rust 1.24 or higher OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=655
This commit is contained in:
parent
f9f24f9c98
commit
0344382ac8
@ -1,47 +0,0 @@
|
||||
From 38a3ee1f792f586aef412ebc04980a93825612c9 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= <zebob.m@gmail.com>
|
||||
Date: Mon, 5 Feb 2018 09:46:44 -0500
|
||||
Subject: [PATCH] Bug 1435695 - WebRTC fails to build with GCC 8; r=dminor
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : d26e183b2082fa4f88ce3b837e2db5fc8acbff5b
|
||||
---
|
||||
media/webrtc/trunk/webrtc/common_audio/vad/vad_core.c | 5 +++--
|
||||
.../webrtc/modules/audio_coding/codecs/isac/fix/source/lattice.c | 5 +++--
|
||||
2 files changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/media/webrtc/trunk/webrtc/common_audio/vad/vad_core.c b/media/webrtc/trunk/webrtc/common_audio/vad/vad_core.c
|
||||
index 0340165eb505..d09314720ddd 100644
|
||||
--- a/media/webrtc/trunk/webrtc/common_audio/vad/vad_core.c
|
||||
+++ b/media/webrtc/trunk/webrtc/common_audio/vad/vad_core.c
|
||||
@@ -115,8 +115,9 @@ static int32_t WeightedAverage(int16_t* data, int16_t offset,
|
||||
// undefined behavior, so not a good idea; this just makes UBSan ignore the
|
||||
// violation, so that our old code can continue to do what it's always been
|
||||
// doing.)
|
||||
-static inline int32_t OverflowingMulS16ByS32ToS32(int16_t a, int32_t b)
|
||||
- RTC_NO_SANITIZE("signed-integer-overflow") {
|
||||
+static inline int32_t RTC_NO_SANITIZE("signed-integer-overflow")
|
||||
+OverflowingMulS16ByS32ToS32(int16_t a, int32_t b)
|
||||
+{
|
||||
return a * b;
|
||||
}
|
||||
|
||||
diff --git a/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice.c b/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice.c
|
||||
index 2b92acb64a3d..c10014f6a108 100644
|
||||
--- a/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice.c
|
||||
+++ b/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice.c
|
||||
@@ -209,8 +209,9 @@ void WebRtcIsacfix_NormLatticeFilterMa(size_t orderCoef,
|
||||
// Left shift of an int32_t that's allowed to overflow. (It's still undefined
|
||||
// behavior, so not a good idea; this just makes UBSan ignore the violation, so
|
||||
// that our old code can continue to do what it's always been doing.)
|
||||
-static inline int32_t OverflowingLShiftS32(int32_t x, int shift)
|
||||
- RTC_NO_SANITIZE("shift") {
|
||||
+static inline int32_t RTC_NO_SANITIZE("shift")
|
||||
+OverflowingLShiftS32(int32_t x, int shift)
|
||||
+{
|
||||
return x << shift;
|
||||
}
|
||||
|
||||
--
|
||||
2.16.3
|
||||
|
@ -1,3 +1,19 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon May 7 08:32:28 UTC 2018 - wr@rosenauer.org
|
||||
|
||||
- update to Firefox 60.0
|
||||
* Added a policy engine that allows customized Firefox deployments
|
||||
in enterprise environments, using Windows Group Policy or a
|
||||
cross-platform JSON file
|
||||
* Applied Quantum CSS to render browser UI
|
||||
* Added support for Web Authentication, allowing the use of USB
|
||||
tokens for authentication to web sites
|
||||
* Locale added: Occitan (oc)
|
||||
- removed obsolete patches
|
||||
0001-Bug-1435695-WebRTC-fails-to-build-with-GCC-8-r-dmino.patch
|
||||
- requires NSPR 4.19 and NSS 3.36.1
|
||||
- requires rust 1.24 or higher
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 3 14:33:37 UTC 2018 - guillaume.gardet@opensuse.org
|
||||
|
||||
|
@ -18,11 +18,11 @@
|
||||
|
||||
|
||||
# changed with every update
|
||||
%define major 59
|
||||
%define mainver %major.0.3
|
||||
%define major 60
|
||||
%define mainver %major.0
|
||||
%define update_channel release
|
||||
%define branding 1
|
||||
%define releasedate 20180340000000
|
||||
%define releasedate 20180503143129
|
||||
|
||||
# PIE, full relro (x86_64 for now)
|
||||
%define build_hardened 1
|
||||
@ -70,11 +70,11 @@ BuildRequires: libiw-devel
|
||||
BuildRequires: libnotify-devel
|
||||
BuildRequires: libproxy-devel
|
||||
BuildRequires: makeinfo
|
||||
BuildRequires: mozilla-nspr-devel >= 4.18
|
||||
BuildRequires: mozilla-nss-devel >= 3.35
|
||||
BuildRequires: mozilla-nspr-devel >= 4.19
|
||||
BuildRequires: mozilla-nss-devel >= 3.36.1
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: python2-xml
|
||||
BuildRequires: rust >= 1.22.1
|
||||
BuildRequires: rust >= 1.24
|
||||
BuildRequires: rust-std
|
||||
BuildRequires: startup-notification-devel
|
||||
BuildRequires: unzip
|
||||
@ -150,11 +150,9 @@ Patch5: mozilla-no-stdcxx-check.patch
|
||||
Patch6: mozilla-reduce-files-per-UnifiedBindings.patch
|
||||
Patch7: mozilla-aarch64-startup-crash.patch
|
||||
Patch8: mozilla-bmo256180.patch
|
||||
Patch9: mozilla-bmo1005535.patch
|
||||
Patch10: mozilla-i586-DecoderDoctorLogger.patch
|
||||
Patch11: mozilla-i586-domPrefs.patch
|
||||
Patch12: mozilla-enable-csd.patch
|
||||
Patch13: 0001-Bug-1435695-WebRTC-fails-to-build-with-GCC-8-r-dmino.patch
|
||||
Patch9: mozilla-i586-DecoderDoctorLogger.patch
|
||||
Patch10: mozilla-i586-domPrefs.patch
|
||||
Patch11: mozilla-enable-csd.patch
|
||||
# Firefox/browser
|
||||
Patch101: firefox-kde.patch
|
||||
Patch102: firefox-branded-icons.patch
|
||||
@ -208,7 +206,7 @@ of %{appname}.
|
||||
%package translations-other
|
||||
Summary: Extra translations for %{appname}
|
||||
Group: System/Localization
|
||||
Provides: locale(%{name}:ach;af;an;as;ast;az;bg;bn_BD;bn_IN;br;bs;cak;cy;dsb;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gn;gu_IN;he;hi_IN;hr;hsb;hy_AM;id;is;ka;kab;kk;km;kn;lij;lt;lv;mai;mk;ml;mr;ms;ne-NP;nn_NO;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;te;th;tr;uk;uz;vi;xh)
|
||||
Provides: locale(%{name}:ach;af;an;as;ast;az;bg;bn_BD;bn_IN;br;bs;cak;cy;dsb;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gn;gu_IN;he;hi_IN;hr;hsb;hy_AM;id;is;ka;kab;kk;km;kn;lij;lt;lv;mai;mk;ml;mr;ms;ne-NP;nn_NO;oc;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;te;th;tr;uk;uz;vi;xh)
|
||||
Requires: %{name} = %{version}
|
||||
Obsoletes: %{name}-translations < %{version}-%{release}
|
||||
|
||||
@ -265,13 +263,11 @@ cd $RPM_BUILD_DIR/mozilla
|
||||
%endif
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%ifarch %ix86
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%endif
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch11 -p1
|
||||
# Firefox
|
||||
%patch101 -p1
|
||||
%patch102 -p1
|
||||
@ -596,7 +592,7 @@ exit 0
|
||||
%{progdir}/application.ini
|
||||
%{progdir}/chrome.manifest
|
||||
%{progdir}/dependentlibs.list
|
||||
%{progdir}/icudt*.dat
|
||||
#%{progdir}/icudt*.dat
|
||||
%{progdir}/*.so
|
||||
%{progdir}/omni.ja
|
||||
%{progdir}/fonts/
|
||||
|
11
_constraints
11
_constraints
@ -10,10 +10,19 @@
|
||||
</hardware>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>aarch64</arch>
|
||||
<arch>armv6l</arch>
|
||||
<arch>armv7l</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="M">2600</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>aarch64</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="G">9</size>
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:37774ab800fa0eb9045c834ebe7ada3cd82b866c3ef00c23cd7abac312e414ac
|
||||
size 28864
|
||||
oid sha256:971053a42b39417bb7d549e3de0d4b267732bb961e5178bbc3a2340b58f84b31
|
||||
size 28368
|
||||
|
@ -7,8 +7,8 @@
|
||||
|
||||
CHANNEL="release"
|
||||
BRANCH="releases/mozilla-$CHANNEL"
|
||||
RELEASE_TAG="FIREFOX_59_0_3_RELEASE"
|
||||
VERSION="59.0.3"
|
||||
RELEASE_TAG="ea4f3168c604994f051644b467aad92723448d12"
|
||||
VERSION="60.0"
|
||||
|
||||
# check required tools
|
||||
test -x /usr/bin/hg || ( echo "hg missing: execute zypper in mercurial"; exit 5 )
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c64851cc34baa35b54680d4339d940dbd81ec297c78b1ac1b57d3b6b5271a92b
|
||||
size 270321944
|
3
firefox-60.0-source.tar.xz
Normal file
3
firefox-60.0-source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f298fbe76fb70fb80aba87d9f6febe81b702b397f17a008dc124db632197516e
|
||||
size 283237956
|
@ -1,11 +1,11 @@
|
||||
# HG changeset patch
|
||||
# Parent ffcd96e120857e207bd357b2005f0b5bc776e375
|
||||
# Parent 1b44c077e473c5a7d02fab26e2a220ebf219e0ab
|
||||
|
||||
diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/browser/base/content/browser-kde.xul
|
||||
@@ -0,0 +1,1238 @@
|
||||
@@ -0,0 +1,1280 @@
|
||||
+#filter substitution
|
||||
+<?xml version="1.0"?>
|
||||
+# -*- Mode: HTML -*-
|
||||
@ -15,14 +15,15 @@ new file mode 100644
|
||||
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
+
|
||||
+<?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/content/downloads/downloads.css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/content/places/places.css" type="text/css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/content/usercontext/usercontext.css" type="text/css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/skin/controlcenter/panel.css" type="text/css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/skin/customizableui/panelUI.css" type="text/css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/skin/downloads/downloads.css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/content/tabbrowser.css" type="text/css"?>
|
||||
+
|
||||
+<?xul-overlay href="chrome://global/content/editMenuOverlay.xul"?>
|
||||
+<?xul-overlay href="chrome://browser/content/baseMenuOverlay.xul"?>
|
||||
+<?xul-overlay href="chrome://browser/content/places/placesOverlay.xul"?>
|
||||
+
|
||||
+# All DTD information is stored in a separate file so that it can be shared by
|
||||
@ -59,7 +60,6 @@ new file mode 100644
|
||||
+ tabsintitlebar="true"
|
||||
+#endif
|
||||
+ titlemenuseparator="&mainWindow.titlemodifiermenuseparator;"
|
||||
+ lightweightthemes="true"
|
||||
+ windowtype="navigator:browser"
|
||||
+ macanimationtype="document"
|
||||
+ screenX="4" screenY="4"
|
||||
@ -75,6 +75,7 @@ new file mode 100644
|
||||
+
|
||||
+<script type="application/javascript">
|
||||
+ Services.scriptloader.loadSubScript("chrome://global/content/contentAreaUtils.js", this);
|
||||
+ Services.scriptloader.loadSubScript("chrome://browser/content/tabbrowser.js", this);
|
||||
+</script>
|
||||
+
|
||||
+# All sets except for popupsets (commands, keys, stringbundles and broadcasters) *must* go into the
|
||||
@ -104,8 +105,9 @@ new file mode 100644
|
||||
+ accesskey="&moveToNewWindow.accesskey;"
|
||||
+ tbattr="tabbrowser-multiple"
|
||||
+ oncommand="gBrowser.replaceTabWithWindow(TabContextMenu.contextTab);"/>
|
||||
+ <menuseparator id="context_sendTabToDevice_separator"/>
|
||||
+ <menuseparator id="context_sendTabToDevice_separator" class="sync-ui-item"/>
|
||||
+ <menu id="context_sendTabToDevice" label="&sendTabToDevice.label;"
|
||||
+ class="sync-ui-item"
|
||||
+ accesskey="&sendTabToDevice.accesskey;">
|
||||
+ <menupopup id="context_sendTabToDevicePopupMenu"
|
||||
+ onpopupshowing="gSync.populateSendTabToDevicesMenu(event.target, TabContextMenu.contextTab.linkedBrowser.currentURI.spec, TabContextMenu.contextTab.linkedBrowser.contentTitle);"/>
|
||||
@ -144,6 +146,7 @@ new file mode 100644
|
||||
+
|
||||
+ <panel type="autocomplete-richlistbox"
|
||||
+ id="PopupAutoComplete"
|
||||
+ role="group"
|
||||
+ noautofocus="true"
|
||||
+ hidden="true"
|
||||
+ overflowpadding="4"
|
||||
@ -151,11 +154,16 @@ new file mode 100644
|
||||
+ nomaxresults="true" />
|
||||
+
|
||||
+ <!-- for search with one-off buttons -->
|
||||
+ <panel type="autocomplete" id="PopupSearchAutoComplete" noautofocus="true" hidden="true"/>
|
||||
+ <panel type="autocomplete-richlistbox"
|
||||
+ id="PopupSearchAutoComplete"
|
||||
+ role="group"
|
||||
+ noautofocus="true"
|
||||
+ hidden="true" />
|
||||
+
|
||||
+ <!-- for url bar autocomplete -->
|
||||
+ <panel type="autocomplete-richlistbox"
|
||||
+ id="PopupAutoCompleteRichResult"
|
||||
+ role="group"
|
||||
+ noautofocus="true"
|
||||
+ hidden="true"
|
||||
+ flip="none"
|
||||
@ -298,7 +306,7 @@ new file mode 100644
|
||||
+ </toolbarbutton>
|
||||
+ <toolbarbutton id="sidebar-switcher-tabs"
|
||||
+ label="&syncedTabs.sidebar.label;"
|
||||
+ class="subviewbutton subviewbutton-iconic"
|
||||
+ class="subviewbutton subviewbutton-iconic sync-ui-item"
|
||||
+ observes="viewTabsSidebar"
|
||||
+ oncommand="SidebarUI.show('viewTabsSidebar');">
|
||||
+ <observes element="viewTabsSidebar" attribute="checked"/>
|
||||
@ -499,6 +507,7 @@ new file mode 100644
|
||||
+
|
||||
+#include ../../components/customizableui/content/panelUI.inc.xul
|
||||
+#include ../../components/controlcenter/content/panel.inc.xul
|
||||
+#include ../../components/downloads/content/downloadsPanel.inc.xul
|
||||
+
|
||||
+ <hbox id="downloads-animation-container" mousethrough="always">
|
||||
+ <vbox id="downloads-notification-anchor" hidden="true">
|
||||
@ -585,7 +594,7 @@ new file mode 100644
|
||||
+ <hbox id="titlebar-content">
|
||||
+ <spacer id="titlebar-spacer" flex="1"/>
|
||||
+ <hbox id="titlebar-buttonbox-container">
|
||||
+ <hbox id="titlebar-buttonbox">
|
||||
+ <hbox id="titlebar-buttonbox" class="titlebar-color">
|
||||
+ <toolbarbutton class="titlebar-button" id="titlebar-min" oncommand="window.minimize();"/>
|
||||
+ <toolbarbutton class="titlebar-button" id="titlebar-max" oncommand="onTitlebarMaxClick();"/>
|
||||
+ <toolbarbutton class="titlebar-button" id="titlebar-close" command="cmd_closeWindow"/>
|
||||
@ -606,7 +615,9 @@ new file mode 100644
|
||||
+
|
||||
+ <toolbox id="navigator-toolbox">
|
||||
+ <!-- Menu -->
|
||||
+ <toolbar type="menubar" id="toolbar-menubar" class="chromeclass-menubar" customizable="true"
|
||||
+ <toolbar type="menubar" id="toolbar-menubar"
|
||||
+ class="chromeclass-menubar titlebar-color"
|
||||
+ customizable="true"
|
||||
+ mode="icons"
|
||||
+#ifdef MENUBAR_CAN_AUTOHIDE
|
||||
+ toolbarname="&menubarCmd.label;"
|
||||
@ -623,13 +634,13 @@ new file mode 100644
|
||||
+#ifdef CAN_DRAW_IN_TITLEBAR
|
||||
+#ifndef XP_MACOSX
|
||||
+ <hbox class="titlebar-placeholder" type="caption-buttons" ordinal="1000"
|
||||
+ persist="width"
|
||||
+ skipintoolbarset="true"/>
|
||||
+#endif
|
||||
+#endif
|
||||
+ </toolbar>
|
||||
+
|
||||
+ <toolbar id="TabsToolbar"
|
||||
+ class="titlebar-color"
|
||||
+ fullscreentoolbar="true"
|
||||
+ customizable="true"
|
||||
+ mode="icons"
|
||||
@ -643,7 +654,6 @@ new file mode 100644
|
||||
+#endif
|
||||
+
|
||||
+ <tabs id="tabbrowser-tabs"
|
||||
+ tabbrowser="content"
|
||||
+ flex="1"
|
||||
+ setfocus="false"
|
||||
+ tooltip="tabbrowser-tab-tooltip"
|
||||
@ -698,7 +708,6 @@ new file mode 100644
|
||||
+ ordinal="1000"/>
|
||||
+#ifdef CAN_DRAW_IN_TITLEBAR
|
||||
+ <hbox class="titlebar-placeholder" type="caption-buttons"
|
||||
+ persist="width"
|
||||
+#ifndef XP_MACOSX
|
||||
+ ordinal="1000"
|
||||
+#endif
|
||||
@ -706,7 +715,6 @@ new file mode 100644
|
||||
+
|
||||
+#ifdef XP_MACOSX
|
||||
+ <hbox class="titlebar-placeholder" type="fullscreen-button"
|
||||
+ persist="width"
|
||||
+ skipintoolbarset="true"/>
|
||||
+#endif
|
||||
+#endif
|
||||
@ -777,6 +785,8 @@ new file mode 100644
|
||||
+ class="chromeclass-location" overflows="false">
|
||||
+ <textbox id="urlbar" flex="1"
|
||||
+ placeholder="&urlbar.placeholder2;"
|
||||
+ defaultPlaceholder="&urlbar.placeholder2;"
|
||||
+ focused="true"
|
||||
+ type="autocomplete"
|
||||
+ autocompletesearch="unifiedcomplete"
|
||||
+ autocompletesearchparam="enable-actions"
|
||||
@ -784,8 +794,6 @@ new file mode 100644
|
||||
+ completeselectedindex="true"
|
||||
+ shrinkdelay="250"
|
||||
+ tabscrolling="true"
|
||||
+ showcommentcolumn="true"
|
||||
+ showimagecolumn="true"
|
||||
+ newlines="stripsurroundingwhitespace"
|
||||
+ ontextentered="this.handleCommand(param);"
|
||||
+ ontextreverted="return this.handleRevert();"
|
||||
@ -820,6 +828,10 @@ new file mode 100644
|
||||
+ tooltiptext="&urlbar.popupBlocked.tooltip;"/>
|
||||
+ <image data-permission-id="canvas" class="blocked-permission-icon canvas-icon" role="button"
|
||||
+ tooltiptext="&urlbar.canvasBlocked.tooltip;"/>
|
||||
+ <image data-permission-id="plugin:flash" class="blocked-permission-icon plugin-icon" role="button"
|
||||
+ tooltiptext="&urlbar.flashPluginBlocked.tooltip;"/>
|
||||
+ <image data-permission-id="midi" class="blocked-permission-icon midi-icon" role="button"
|
||||
+ tooltiptext="&urlbar.midiBlocked.tooltip;"/>
|
||||
+ </box>
|
||||
+ <box id="notification-popup-box"
|
||||
+ hidden="true"
|
||||
@ -861,6 +873,10 @@ new file mode 100644
|
||||
+ tooltiptext="&urlbar.emeNotificationAnchor.tooltip;"/>
|
||||
+ <image id="persistent-storage-notification-icon" class="notification-anchor-icon persistent-storage-icon" role="button"
|
||||
+ tooltiptext="&urlbar.persistentStorageNotificationAnchor.tooltip;"/>
|
||||
+ <image id="midi-notification-icon" class="notification-anchor-icon midi-icon" role="button"
|
||||
+ tooltiptext="&urlbar.midiNotificationAnchor.tooltip;"/>
|
||||
+ <image id="webauthn-notification-icon" class="notification-anchor-icon" role="button"
|
||||
+ tooltiptext="&urlbar.defaultNotificationAnchor.tooltip;"/>
|
||||
+ </box>
|
||||
+ <image id="connection-icon"/>
|
||||
+ <image id="extension-icon"/>
|
||||
@ -882,6 +898,7 @@ new file mode 100644
|
||||
+ </hbox>
|
||||
+ <image id="reader-mode-button"
|
||||
+ class="urlbar-icon urlbar-page-action"
|
||||
+ tooltip="dynamic-shortcut-tooltip"
|
||||
+ role="button"
|
||||
+ hidden="true"
|
||||
+ onclick="ReaderParent.buttonClick(event);"/>
|
||||
@ -930,7 +947,20 @@ new file mode 100644
|
||||
+ overflows="false"
|
||||
+ cui-areatype="toolbar"
|
||||
+ hidden="true"
|
||||
+ tooltip="dynamic-shortcut-tooltip"/>
|
||||
+ tooltip="dynamic-shortcut-tooltip"
|
||||
+ indicator="true">
|
||||
+ <!-- The panel's anchor area is smaller than the outer button, but must
|
||||
+ always be visible and must not move or resize when the indicator
|
||||
+ state changes, otherwise the panel could change its position or lose
|
||||
+ its arrow unexpectedly. -->
|
||||
+ <stack id="downloads-indicator-anchor"
|
||||
+ consumeanchor="downloads-button">
|
||||
+ <box id="downloads-indicator-icon"/>
|
||||
+ <stack id="downloads-indicator-progress-outer">
|
||||
+ <box id="downloads-indicator-progress-inner"/>
|
||||
+ </stack>
|
||||
+ </stack>
|
||||
+ </toolbarbutton>
|
||||
+
|
||||
+ <toolbarbutton id="library-button" class="toolbarbutton-1 chromeclass-toolbar-additional subviewbutton-nav"
|
||||
+ removable="true"
|
||||
@ -1088,12 +1118,10 @@ new file mode 100644
|
||||
+ BookmarkingUI.attachPlacesView(event, this);"
|
||||
+ tooltip="bhTooltip" popupsinherittooltip="true">
|
||||
+ <menuitem id="BMB_viewBookmarksSidebar"
|
||||
+ class="subviewbutton"
|
||||
+ label="&viewBookmarksSidebar2.label;"
|
||||
+ type="checkbox"
|
||||
+ oncommand="SidebarUI.toggle('viewBookmarksSidebar');">
|
||||
+ <observes element="viewBookmarksSidebar" attribute="checked"/>
|
||||
+ </menuitem>
|
||||
+ class="menuitem-iconic subviewbutton"
|
||||
+ label-show="&viewBookmarksSidebar2.label;"
|
||||
+ label-hide="&hideBookmarksSidebar.label;"
|
||||
+ oncommand="SidebarUI.toggle('viewBookmarksSidebar');"/>
|
||||
+ <!-- NB: temporary solution for bug 985024, this should go away soon. -->
|
||||
+ <menuitem id="BMB_bookmarksShowAllTop"
|
||||
+ class="menuitem-iconic subviewbutton"
|
||||
@ -1112,11 +1140,10 @@ new file mode 100644
|
||||
+ new PlacesMenu(event, 'place:folder=TOOLBAR',
|
||||
+ PlacesUIUtils.getViewForNode(this.parentNode.parentNode).options);">
|
||||
+ <menuitem id="BMB_viewBookmarksToolbar"
|
||||
+ placesanonid="view-toolbar"
|
||||
+ toolbarId="PersonalToolbar"
|
||||
+ type="checkbox"
|
||||
+ oncommand="onViewToolbarCommand(event)"
|
||||
+ label="&viewBookmarksToolbar.label;"/>
|
||||
+ class="menuitem-iconic subviewbutton"
|
||||
+ label-show="&viewBookmarksToolbar.label;"
|
||||
+ label-hide="&hideBookmarksToolbar.label;"
|
||||
+ oncommand="BookmarkingUI.toggleBookmarksToolbar();"/>
|
||||
+ <menuseparator/>
|
||||
+ <!-- Bookmarks toolbar items -->
|
||||
+ </menupopup>
|
||||
@ -1196,13 +1223,28 @@ new file mode 100644
|
||||
+ <splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" hidden="true"/>
|
||||
+ <vbox id="appcontent" flex="1">
|
||||
+ <notificationbox id="high-priority-global-notificationbox" notificationside="top"/>
|
||||
+ <tabbrowser id="content"
|
||||
+ flex="1" contenttooltip="aHTMLTooltip"
|
||||
+ tabcontainer="tabbrowser-tabs"
|
||||
+ contentcontextmenu="contentAreaContextMenu"
|
||||
+ autocompletepopup="PopupAutoComplete"
|
||||
+ selectmenulist="ContentSelectDropdown"
|
||||
+ datetimepicker="DateTimePickerPanel"/>
|
||||
+ <tabbox id="tabbrowser-tabbox"
|
||||
+ flex="1" eventnode="document" tabcontainer="tabbrowser-tabs"
|
||||
+ onselect="if (event.target.localName == 'tabpanels') gBrowser.updateCurrentBrowser();">
|
||||
+ <tabpanels flex="1" class="plain" selectedIndex="0" id="tabbrowser-tabpanels">
|
||||
+ <notificationbox flex="1" notificationside="top">
|
||||
+ <hbox flex="1" class="browserSidebarContainer">
|
||||
+ <vbox flex="1" class="browserContainer">
|
||||
+ <stack flex="1" class="browserStack">
|
||||
+ <browser id="tabbrowser-initialBrowser" type="content"
|
||||
+ message="true" messagemanagergroup="browsers"
|
||||
+ primary="true" blank="true"
|
||||
+ tooltip="aHTMLTooltip"
|
||||
+ contextmenu="contentAreaContextMenu"
|
||||
+ autocompletepopup="PopupAutoComplete"
|
||||
+ selectmenulist="ContentSelectDropdown"
|
||||
+ datetimepicker="DateTimePickerPanel"/>
|
||||
+ </stack>
|
||||
+ </vbox>
|
||||
+ </hbox>
|
||||
+ </notificationbox>
|
||||
+ </tabpanels>
|
||||
+ </tabbox>
|
||||
+ </vbox>
|
||||
+ <vbox id="browser-border-end" hidden="true" layer="true"/>
|
||||
+ </hbox>
|
||||
@ -1247,7 +1289,7 @@ new file mode 100644
|
||||
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
|
||||
--- a/browser/base/jar.mn
|
||||
+++ b/browser/base/jar.mn
|
||||
@@ -45,16 +45,18 @@ browser.jar:
|
||||
@@ -42,16 +42,18 @@ browser.jar:
|
||||
content/browser/aboutRobots-icon.png (content/aboutRobots-icon.png)
|
||||
content/browser/aboutRobots-widget-left.png (content/aboutRobots-widget-left.png)
|
||||
content/browser/aboutTabCrashed.css (content/aboutTabCrashed.css)
|
||||
@ -1329,7 +1371,7 @@ diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/ns
|
||||
diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js
|
||||
--- a/browser/components/preferences/in-content/main.js
|
||||
+++ b/browser/components/preferences/in-content/main.js
|
||||
@@ -330,16 +330,23 @@ var gMainPane = {
|
||||
@@ -333,16 +333,23 @@ var gMainPane = {
|
||||
this._backoffIndex++ : backoffTimes.length - 1]);
|
||||
};
|
||||
|
||||
@ -1353,7 +1395,7 @@ diff --git a/browser/components/preferences/in-content/main.js b/browser/compone
|
||||
performanceSettingsLink.setAttribute("href", performanceSettingsUrl);
|
||||
|
||||
this.updateDefaultPerformanceSettingsPref();
|
||||
@@ -1035,16 +1042,27 @@ var gMainPane = {
|
||||
@@ -1060,16 +1067,27 @@ var gMainPane = {
|
||||
// Reset exponential backoff delay time in order to do visual update in pollForDefaultBrowser.
|
||||
this._backoffIndex = 0;
|
||||
|
||||
@ -1697,7 +1739,7 @@ new file mode 100644
|
||||
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
||||
--- a/browser/installer/package-manifest.in
|
||||
+++ b/browser/installer/package-manifest.in
|
||||
@@ -649,16 +649,18 @@
|
||||
@@ -646,16 +646,18 @@
|
||||
@RESPATH@/browser/defaults/blocklists
|
||||
@RESPATH@/browser/defaults/pinning
|
||||
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:796a5b95a600c942dba7cc6cd5dc9103efba150a05141cefed958182d0658a32
|
||||
size 53481332
|
3
l10n-60.0.tar.xz
Normal file
3
l10n-60.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:818593ebff301f74bf90ad714e263398c2fc67d318f687b8049c774ffdc56a2b
|
||||
size 49782444
|
@ -1,123 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent 376f185a0a757fe128be665adbb705f4a56461bc
|
||||
# User Steve Singer <steve@ssinger.info>
|
||||
# Parent 371f01835b6fe4cb6b7095a6c29f7bb54f6d6257
|
||||
Bug 1005535 - Get skia GPU building on big endian.
|
||||
|
||||
diff --git a/gfx/skia/skia/include/core/SkColorPriv.h b/gfx/skia/skia/include/core/SkColorPriv.h
|
||||
--- a/gfx/skia/skia/include/core/SkColorPriv.h
|
||||
+++ b/gfx/skia/skia/include/core/SkColorPriv.h
|
||||
@@ -27,37 +27,27 @@
|
||||
* For easier compatibility with Skia's GPU backend, we further restrict these
|
||||
* to either (in memory-byte-order) RGBA or BGRA. Note that this "order" does
|
||||
* not directly correspond to the same shift-order, since we have to take endianess
|
||||
* into account.
|
||||
*
|
||||
* Here we enforce this constraint.
|
||||
*/
|
||||
|
||||
-#ifdef SK_CPU_BENDIAN
|
||||
- #define SK_RGBA_R32_SHIFT 24
|
||||
- #define SK_RGBA_G32_SHIFT 16
|
||||
- #define SK_RGBA_B32_SHIFT 8
|
||||
- #define SK_RGBA_A32_SHIFT 0
|
||||
|
||||
- #define SK_BGRA_B32_SHIFT 24
|
||||
- #define SK_BGRA_G32_SHIFT 16
|
||||
- #define SK_BGRA_R32_SHIFT 8
|
||||
- #define SK_BGRA_A32_SHIFT 0
|
||||
-#else
|
||||
#define SK_RGBA_R32_SHIFT 0
|
||||
#define SK_RGBA_G32_SHIFT 8
|
||||
#define SK_RGBA_B32_SHIFT 16
|
||||
#define SK_RGBA_A32_SHIFT 24
|
||||
|
||||
#define SK_BGRA_B32_SHIFT 0
|
||||
#define SK_BGRA_G32_SHIFT 8
|
||||
#define SK_BGRA_R32_SHIFT 16
|
||||
#define SK_BGRA_A32_SHIFT 24
|
||||
-#endif
|
||||
+
|
||||
|
||||
#if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA)
|
||||
#error "can't define PMCOLOR to be RGBA and BGRA"
|
||||
#endif
|
||||
|
||||
#define LOCAL_PMCOLOR_SHIFTS_EQUIVALENT_TO_RGBA \
|
||||
(SK_A32_SHIFT == SK_RGBA_A32_SHIFT && \
|
||||
SK_R32_SHIFT == SK_RGBA_R32_SHIFT && \
|
||||
diff --git a/gfx/skia/skia/include/core/SkImageInfo.h b/gfx/skia/skia/include/core/SkImageInfo.h
|
||||
--- a/gfx/skia/skia/include/core/SkImageInfo.h
|
||||
+++ b/gfx/skia/skia/include/core/SkImageInfo.h
|
||||
@@ -78,17 +78,17 @@ enum SkColorType {
|
||||
|
||||
kLastEnum_SkColorType = kRGBA_F16_SkColorType,
|
||||
|
||||
#if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
|
||||
kN32_SkColorType = kBGRA_8888_SkColorType,
|
||||
#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
|
||||
kN32_SkColorType = kRGBA_8888_SkColorType,
|
||||
#else
|
||||
- #error "SK_*32_SHFIT values must correspond to BGRA or RGBA byte order"
|
||||
+ kN32_SkColorType = kBGRA_8888_SkColorType
|
||||
#endif
|
||||
};
|
||||
|
||||
static int SkColorTypeBytesPerPixel(SkColorType ct) {
|
||||
static const uint8_t gSize[] = {
|
||||
0, // Unknown
|
||||
1, // Alpha_8
|
||||
2, // RGB_565
|
||||
diff --git a/gfx/skia/skia/include/gpu/GrColor.h b/gfx/skia/skia/include/gpu/GrColor.h
|
||||
--- a/gfx/skia/skia/include/gpu/GrColor.h
|
||||
+++ b/gfx/skia/skia/include/gpu/GrColor.h
|
||||
@@ -69,17 +69,17 @@ static inline GrColor GrColorPackA4(unsi
|
||||
#define GrColorUnpackG(color) (((color) >> GrColor_SHIFT_G) & 0xFF)
|
||||
#define GrColorUnpackB(color) (((color) >> GrColor_SHIFT_B) & 0xFF)
|
||||
#define GrColorUnpackA(color) (((color) >> GrColor_SHIFT_A) & 0xFF)
|
||||
|
||||
/**
|
||||
* Since premultiplied means that alpha >= color, we construct a color with
|
||||
* each component==255 and alpha == 0 to be "illegal"
|
||||
*/
|
||||
-#define GrColor_ILLEGAL (~(0xFF << GrColor_SHIFT_A))
|
||||
+#define GrColor_ILLEGAL ((uint32_t)(~(0xFF << GrColor_SHIFT_A)))
|
||||
|
||||
#define GrColor_WHITE 0xFFFFFFFF
|
||||
#define GrColor_TRANSPARENT_BLACK 0x0
|
||||
|
||||
/**
|
||||
* Assert in debug builds that a GrColor is premultiplied.
|
||||
*/
|
||||
static inline void GrColorIsPMAssert(GrColor SkDEBUGCODE(c)) {
|
||||
diff --git a/gfx/skia/skia/include/gpu/GrTypes.h b/gfx/skia/skia/include/gpu/GrTypes.h
|
||||
--- a/gfx/skia/skia/include/gpu/GrTypes.h
|
||||
+++ b/gfx/skia/skia/include/gpu/GrTypes.h
|
||||
@@ -321,25 +321,23 @@ enum GrPixelConfig {
|
||||
*/
|
||||
kRGBA_half_GrPixelConfig,
|
||||
|
||||
kLast_GrPixelConfig = kRGBA_half_GrPixelConfig
|
||||
};
|
||||
static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1;
|
||||
|
||||
// Aliases for pixel configs that match skia's byte order.
|
||||
-#ifndef SK_CPU_LENDIAN
|
||||
- #error "Skia gpu currently assumes little endian"
|
||||
-#endif
|
||||
+
|
||||
#if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
|
||||
static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig;
|
||||
#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
|
||||
static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_8888_GrPixelConfig;
|
||||
#else
|
||||
- #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format."
|
||||
+ static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig;
|
||||
#endif
|
||||
|
||||
// Returns true if the pixel config is a GPU-specific compressed format
|
||||
// representation.
|
||||
static inline bool GrPixelConfigIsCompressed(GrPixelConfig config) {
|
||||
switch (config) {
|
||||
case kETC1_GrPixelConfig:
|
||||
return true;
|
@ -1,96 +1,614 @@
|
||||
Index: mozilla/browser/base/moz.build
|
||||
===================================================================
|
||||
--- mozilla.orig/browser/base/moz.build
|
||||
+++ mozilla/browser/base/moz.build
|
||||
@@ -60,7 +60,7 @@ DEFINES['APP_LICENSE_BLOCK'] = '%s/conte
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk3', 'cocoa'):
|
||||
DEFINES['CONTEXT_COPY_IMAGE_CONTENTS'] = 1
|
||||
This is a composition of these patches for Firefox 60:
|
||||
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1441873
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1441665
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1456898
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1457309
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1457691
|
||||
|
||||
which fix popup window placement at CSD window mode.
|
||||
|
||||
|
||||
diff --git a/widget/gtk/nsLookAndFeel.cpp b/widget/gtk/nsLookAndFeel.cpp
|
||||
--- a/widget/gtk/nsLookAndFeel.cpp
|
||||
+++ b/widget/gtk/nsLookAndFeel.cpp
|
||||
@@ -1076,19 +1076,18 @@ nsLookAndFeel::EnsureInit()
|
||||
nullptr);
|
||||
|
||||
-if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'cocoa'):
|
||||
+if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'cocoa', 'gtk3'):
|
||||
DEFINES['CAN_DRAW_IN_TITLEBAR'] = 1
|
||||
GetSystemFontInfo(gtk_widget_get_style_context(entry),
|
||||
&mFieldFontName, &mFieldFontStyle);
|
||||
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk3'):
|
||||
Index: mozilla/toolkit/modules/moz.build
|
||||
===================================================================
|
||||
--- mozilla.orig/toolkit/modules/moz.build
|
||||
+++ mozilla/toolkit/modules/moz.build
|
||||
@@ -265,7 +265,7 @@ EXTRA_JS_MODULES.sessionstore += [
|
||||
'sessionstore/Utils.jsm',
|
||||
]
|
||||
gtk_widget_destroy(window);
|
||||
g_object_unref(labelWidget);
|
||||
|
||||
-if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'cocoa'):
|
||||
+if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'cocoa', 'gtk3'):
|
||||
DEFINES['CAN_DRAW_IN_TITLEBAR'] = 1
|
||||
- // Require GTK 3.10 for GtkHeaderBar support and compatible window manager.
|
||||
- mCSDAvailable = (gtk_check_version(3, 10, 0) == nullptr &&
|
||||
- nsWindow::GetCSDSupportLevel() != nsWindow::CSD_SUPPORT_NONE);
|
||||
+ mCSDAvailable =
|
||||
+ nsWindow::GetSystemCSDSupportLevel() != nsWindow::CSD_SUPPORT_NONE;
|
||||
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk3'):
|
||||
Index: mozilla/widget/gtk/nsWindow.cpp
|
||||
===================================================================
|
||||
--- mozilla.orig/widget/gtk/nsWindow.cpp
|
||||
+++ mozilla/widget/gtk/nsWindow.cpp
|
||||
@@ -6857,9 +6857,62 @@ nsWindow::GetCSDSupportLevel() {
|
||||
mCSDCloseButton = false;
|
||||
mCSDMinimizeButton = false;
|
||||
mCSDMaximizeButton = false;
|
||||
|
||||
// We need to initialize whole CSD config explicitly because it's queried
|
||||
// as -moz-gtk* media features.
|
||||
WidgetNodeType buttonLayout[TOOLBAR_BUTTONS];
|
||||
diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h
|
||||
--- a/widget/gtk/nsWindow.h
|
||||
+++ b/widget/gtk/nsWindow.h
|
||||
@@ -395,28 +395,26 @@ public:
|
||||
// From GDK
|
||||
int GdkCoordToDevicePixels(gint coord);
|
||||
LayoutDeviceIntPoint GdkPointToDevicePixels(GdkPoint point);
|
||||
LayoutDeviceIntPoint GdkEventCoordsToDevicePixels(gdouble x, gdouble y);
|
||||
LayoutDeviceIntRect GdkRectToDevicePixels(GdkRectangle rect);
|
||||
|
||||
virtual bool WidgetTypeSupportsAcceleration() override;
|
||||
|
||||
- bool DoDrawTitlebar() const;
|
||||
-
|
||||
typedef enum { CSD_SUPPORT_SYSTEM, // CSD including shadows
|
||||
CSD_SUPPORT_CLIENT, // CSD without shadows
|
||||
CSD_SUPPORT_NONE, // WM does not support CSD at all
|
||||
CSD_SUPPORT_UNKNOWN
|
||||
} CSDSupportLevel;
|
||||
/**
|
||||
* Get the support of Client Side Decoration by checking
|
||||
* the XDG_CURRENT_DESKTOP environment variable.
|
||||
*/
|
||||
- static CSDSupportLevel GetCSDSupportLevel();
|
||||
+ static CSDSupportLevel GetSystemCSDSupportLevel();
|
||||
|
||||
protected:
|
||||
virtual ~nsWindow();
|
||||
|
||||
// event handling code
|
||||
void DispatchActivateEvent(void);
|
||||
void DispatchDeactivateEvent(void);
|
||||
void DispatchResized();
|
||||
@@ -512,19 +510,21 @@ private:
|
||||
int mXDepth;
|
||||
mozilla::widget::WindowSurfaceProvider mSurfaceProvider;
|
||||
#endif
|
||||
|
||||
// Upper bound on pending ConfigureNotify events to be dispatched to the
|
||||
// window. See bug 1225044.
|
||||
unsigned int mPendingConfigures;
|
||||
|
||||
- bool mIsCSDAvailable;
|
||||
+ // Window titlebar rendering mode, CSD_SUPPORT_NONE if it's disabled
|
||||
+ // for this window.
|
||||
+ CSDSupportLevel mCSDSupportLevel;
|
||||
// If true, draw our own window titlebar.
|
||||
- bool mIsCSDEnabled;
|
||||
+ bool mDrawInTitlebar;
|
||||
// Draggable titlebar region maintained by UpdateWindowDraggingRegion
|
||||
LayoutDeviceIntRegion mDraggableRegion;
|
||||
|
||||
#ifdef ACCESSIBILITY
|
||||
RefPtr<mozilla::a11y::Accessible> mRootAccessible;
|
||||
|
||||
/**
|
||||
* Request to create the accessible for this window if it is top level.
|
||||
|
||||
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
||||
--- a/widget/gtk/nsWindow.cpp
|
||||
+++ b/widget/gtk/nsWindow.cpp
|
||||
@@ -474,18 +474,18 @@ nsWindow::nsWindow()
|
||||
|
||||
mTransparencyBitmapWidth = 0;
|
||||
mTransparencyBitmapHeight = 0;
|
||||
|
||||
#if GTK_CHECK_VERSION(3,4,0)
|
||||
mLastScrollEventTime = GDK_CURRENT_TIME;
|
||||
#endif
|
||||
mPendingConfigures = 0;
|
||||
- mIsCSDAvailable = false;
|
||||
- mIsCSDEnabled = false;
|
||||
+ mCSDSupportLevel = CSD_SUPPORT_NONE;
|
||||
+ mDrawInTitlebar = false;
|
||||
}
|
||||
|
||||
nsWindow::~nsWindow()
|
||||
{
|
||||
LOG(("nsWindow::~nsWindow() [%p]\n", (void *)this));
|
||||
|
||||
delete[] mTransparencyBitmap;
|
||||
mTransparencyBitmap = nullptr;
|
||||
@@ -2814,17 +2814,17 @@ nsWindow::OnButtonReleaseEvent(GdkEventB
|
||||
LayoutDeviceIntPoint pos = event.mRefPoint;
|
||||
|
||||
nsEventStatus eventStatus = DispatchInputEvent(&event);
|
||||
|
||||
bool defaultPrevented = (eventStatus == nsEventStatus_eConsumeNoDefault);
|
||||
// Check if mouse position in titlebar and doubleclick happened to
|
||||
// trigger restore/maximize.
|
||||
if (!defaultPrevented
|
||||
- && mIsCSDEnabled
|
||||
+ && mDrawInTitlebar
|
||||
&& event.button == WidgetMouseEvent::eLeftButton
|
||||
&& event.mClickCount == 2
|
||||
&& mDraggableRegion.Contains(pos.x, pos.y)) {
|
||||
|
||||
if (mSizeState == nsSizeMode_Maximized) {
|
||||
SetSizeMode(nsSizeMode_Normal);
|
||||
} else {
|
||||
SetSizeMode(nsSizeMode_Maximized);
|
||||
@@ -3758,22 +3758,18 @@ nsWindow::Create(nsIWidget* aParent,
|
||||
gtk_window_set_wmclass(GTK_WINDOW(mShell), "Toplevel",
|
||||
gdk_get_program_class());
|
||||
|
||||
// each toplevel window gets its own window group
|
||||
GtkWindowGroup *group = gtk_window_group_new();
|
||||
gtk_window_group_add_window(group, GTK_WINDOW(mShell));
|
||||
g_object_unref(group);
|
||||
|
||||
- int32_t isCSDAvailable = false;
|
||||
- nsresult rv = LookAndFeel::GetInt(LookAndFeel::eIntID_GTKCSDAvailable,
|
||||
- &isCSDAvailable);
|
||||
- if (NS_SUCCEEDED(rv)) {
|
||||
- mIsCSDAvailable = isCSDAvailable;
|
||||
- }
|
||||
+ // We enable titlebar rendering for toplevel windows only.
|
||||
+ mCSDSupportLevel = GetSystemCSDSupportLevel();
|
||||
}
|
||||
|
||||
// Create a container to hold child windows and child GtkWidgets.
|
||||
GtkWidget *container = moz_container_new();
|
||||
mContainer = MOZ_CONTAINER(container);
|
||||
|
||||
// "csd" style is set when widget is realized so we need to call
|
||||
// it explicitly now.
|
||||
@@ -3788,17 +3784,17 @@ nsWindow::Create(nsIWidget* aParent,
|
||||
* are drawn by Gtk+ to mShell. Content is rendered to mContainer
|
||||
* and we listen to the Gtk+ events on mContainer.
|
||||
* 3) We're running on Wayland. All gecko content is rendered
|
||||
* to mContainer and we listen to the Gtk+ events on mContainer.
|
||||
*/
|
||||
GtkStyleContext* style = gtk_widget_get_style_context(mShell);
|
||||
drawToContainer =
|
||||
!mIsX11Display ||
|
||||
- (mIsCSDAvailable && GetCSDSupportLevel() == CSD_SUPPORT_CLIENT) ||
|
||||
+ (mCSDSupportLevel == CSD_SUPPORT_CLIENT) ||
|
||||
gtk_style_context_has_class(style, "csd");
|
||||
eventWidget = (drawToContainer) ? container : mShell;
|
||||
|
||||
gtk_widget_add_events(eventWidget, kEvents);
|
||||
if (drawToContainer)
|
||||
gtk_widget_add_events(mShell, GDK_PROPERTY_CHANGE_MASK);
|
||||
|
||||
// Prevent GtkWindow from painting a background to avoid flickering.
|
||||
@@ -6581,90 +6577,91 @@ nsWindow::ClearCachedResources()
|
||||
window->ClearCachedResources();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsWindow::SetNonClientMargins(LayoutDeviceIntMargin &aMargins)
|
||||
{
|
||||
- SetDrawsInTitlebar(aMargins.top == 0);
|
||||
- return NS_OK;
|
||||
+ SetDrawsInTitlebar(aMargins.top == 0);
|
||||
+ return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
nsWindow::SetDrawsInTitlebar(bool aState)
|
||||
{
|
||||
- if (!mIsCSDAvailable || aState == mIsCSDEnabled)
|
||||
- return;
|
||||
-
|
||||
- if (mShell) {
|
||||
- if (GetCSDSupportLevel() == CSD_SUPPORT_SYSTEM) {
|
||||
- SetWindowDecoration(aState ? eBorderStyle_border : mBorderStyle);
|
||||
- }
|
||||
- else {
|
||||
- /* Window manager does not support GDK_DECOR_BORDER,
|
||||
- * emulate it by CSD.
|
||||
- *
|
||||
- * gtk_window_set_titlebar() works on unrealized widgets only,
|
||||
- * we need to handle mShell carefully here.
|
||||
- * When CSD is enabled mGdkWindow is owned by mContainer which is good
|
||||
- * as we can't delete our mGdkWindow. To make mShell unrealized while
|
||||
- * mContainer is preserved we temporary reparent mContainer to an
|
||||
- * invisible GtkWindow.
|
||||
- */
|
||||
- NativeShow(false);
|
||||
-
|
||||
- // Using GTK_WINDOW_POPUP rather than
|
||||
- // GTK_WINDOW_TOPLEVEL in the hope that POPUP results in less
|
||||
- // initialization and window manager interaction.
|
||||
- GtkWidget* tmpWindow = gtk_window_new(GTK_WINDOW_POPUP);
|
||||
- gtk_widget_realize(tmpWindow);
|
||||
-
|
||||
- gtk_widget_reparent(GTK_WIDGET(mContainer), tmpWindow);
|
||||
- gtk_widget_unrealize(GTK_WIDGET(mShell));
|
||||
-
|
||||
- // Available as of GTK 3.10+
|
||||
- static auto sGtkWindowSetTitlebar = (void (*)(GtkWindow*, GtkWidget*))
|
||||
- dlsym(RTLD_DEFAULT, "gtk_window_set_titlebar");
|
||||
- MOZ_ASSERT(sGtkWindowSetTitlebar,
|
||||
- "Missing gtk_window_set_titlebar(), old Gtk+ library?");
|
||||
-
|
||||
- if (aState) {
|
||||
- // Add a hidden titlebar widget to trigger CSD, but disable the default
|
||||
- // titlebar. GtkFixed is a somewhat random choice for a simple unused
|
||||
- // widget. gtk_window_set_titlebar() takes ownership of the titlebar
|
||||
- // widget.
|
||||
- sGtkWindowSetTitlebar(GTK_WINDOW(mShell), gtk_fixed_new());
|
||||
- } else {
|
||||
- sGtkWindowSetTitlebar(GTK_WINDOW(mShell), nullptr);
|
||||
- }
|
||||
-
|
||||
- /* A workaround for https://bugzilla.gnome.org/show_bug.cgi?id=791081
|
||||
- * gtk_widget_realize() throws:
|
||||
- * "In pixman_region32_init_rect: Invalid rectangle passed"
|
||||
- * when mShell has default 1x1 size.
|
||||
- */
|
||||
- GtkAllocation allocation = {0, 0, 0, 0};
|
||||
- gtk_widget_get_preferred_width(GTK_WIDGET(mShell), nullptr,
|
||||
- &allocation.width);
|
||||
- gtk_widget_get_preferred_height(GTK_WIDGET(mShell), nullptr,
|
||||
- &allocation.height);
|
||||
- gtk_widget_size_allocate(GTK_WIDGET(mShell), &allocation);
|
||||
-
|
||||
- gtk_widget_realize(GTK_WIDGET(mShell));
|
||||
- gtk_widget_reparent(GTK_WIDGET(mContainer), GTK_WIDGET(mShell));
|
||||
- mNeedsShow = true;
|
||||
- NativeResize();
|
||||
-
|
||||
- gtk_widget_destroy(tmpWindow);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- mIsCSDEnabled = aState;
|
||||
+ if (!mShell ||
|
||||
+ mCSDSupportLevel == CSD_SUPPORT_NONE ||
|
||||
+ aState == mDrawInTitlebar) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (mCSDSupportLevel == CSD_SUPPORT_SYSTEM) {
|
||||
+ SetWindowDecoration(aState ? eBorderStyle_border : mBorderStyle);
|
||||
+ }
|
||||
+ else if (mCSDSupportLevel == CSD_SUPPORT_CLIENT) {
|
||||
+ /* Window manager does not support GDK_DECOR_BORDER,
|
||||
+ * emulate it by CSD.
|
||||
+ *
|
||||
+ * gtk_window_set_titlebar() works on unrealized widgets only,
|
||||
+ * we need to handle mShell carefully here.
|
||||
+ * When CSD is enabled mGdkWindow is owned by mContainer which is good
|
||||
+ * as we can't delete our mGdkWindow. To make mShell unrealized while
|
||||
+ * mContainer is preserved we temporary reparent mContainer to an
|
||||
+ * invisible GtkWindow.
|
||||
+ */
|
||||
+ NativeShow(false);
|
||||
+
|
||||
+ // Using GTK_WINDOW_POPUP rather than
|
||||
+ // GTK_WINDOW_TOPLEVEL in the hope that POPUP results in less
|
||||
+ // initialization and window manager interaction.
|
||||
+ GtkWidget* tmpWindow = gtk_window_new(GTK_WINDOW_POPUP);
|
||||
+ gtk_widget_realize(tmpWindow);
|
||||
+
|
||||
+ gtk_widget_reparent(GTK_WIDGET(mContainer), tmpWindow);
|
||||
+ gtk_widget_unrealize(GTK_WIDGET(mShell));
|
||||
+
|
||||
+ // Available as of GTK 3.10+
|
||||
+ static auto sGtkWindowSetTitlebar = (void (*)(GtkWindow*, GtkWidget*))
|
||||
+ dlsym(RTLD_DEFAULT, "gtk_window_set_titlebar");
|
||||
+ MOZ_ASSERT(sGtkWindowSetTitlebar,
|
||||
+ "Missing gtk_window_set_titlebar(), old Gtk+ library?");
|
||||
+
|
||||
+ if (aState) {
|
||||
+ // Add a hidden titlebar widget to trigger CSD, but disable the default
|
||||
+ // titlebar. GtkFixed is a somewhat random choice for a simple unused
|
||||
+ // widget. gtk_window_set_titlebar() takes ownership of the titlebar
|
||||
+ // widget.
|
||||
+ sGtkWindowSetTitlebar(GTK_WINDOW(mShell), gtk_fixed_new());
|
||||
+ } else {
|
||||
+ sGtkWindowSetTitlebar(GTK_WINDOW(mShell), nullptr);
|
||||
+ }
|
||||
+
|
||||
+ /* A workaround for https://bugzilla.gnome.org/show_bug.cgi?id=791081
|
||||
+ * gtk_widget_realize() throws:
|
||||
+ * "In pixman_region32_init_rect: Invalid rectangle passed"
|
||||
+ * when mShell has default 1x1 size.
|
||||
+ */
|
||||
+ GtkAllocation allocation = {0, 0, 0, 0};
|
||||
+ gtk_widget_get_preferred_width(GTK_WIDGET(mShell), nullptr,
|
||||
+ &allocation.width);
|
||||
+ gtk_widget_get_preferred_height(GTK_WIDGET(mShell), nullptr,
|
||||
+ &allocation.height);
|
||||
+ gtk_widget_size_allocate(GTK_WIDGET(mShell), &allocation);
|
||||
+
|
||||
+ gtk_widget_realize(GTK_WIDGET(mShell));
|
||||
+ gtk_widget_reparent(GTK_WIDGET(mContainer), GTK_WIDGET(mShell));
|
||||
+ mNeedsShow = true;
|
||||
+ NativeResize();
|
||||
+
|
||||
+ gtk_widget_destroy(tmpWindow);
|
||||
+ }
|
||||
+
|
||||
+ mDrawInTitlebar = aState;
|
||||
}
|
||||
|
||||
gint
|
||||
nsWindow::GdkScaleFactor()
|
||||
{
|
||||
#if (MOZ_WIDGET_GTK >= 3)
|
||||
// Available as of GTK 3.10+
|
||||
static auto sGdkWindowGetScaleFactorPtr = (gint (*)(GdkWindow*))
|
||||
@@ -6923,28 +6920,28 @@ nsWindow::SynthesizeNativeTouchPoint(uin
|
||||
event.touch.y = DevicePixelsToGdkCoordRoundDown(pointInWindow.y);
|
||||
|
||||
gdk_event_put(&event);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
-bool
|
||||
-nsWindow::DoDrawTitlebar() const
|
||||
-{
|
||||
- return mIsCSDEnabled && mSizeState == nsSizeMode_Normal;
|
||||
-}
|
||||
-
|
||||
nsWindow::CSDSupportLevel
|
||||
-nsWindow::GetCSDSupportLevel() {
|
||||
+nsWindow::GetSystemCSDSupportLevel() {
|
||||
if (sCSDSupportLevel != CSD_SUPPORT_UNKNOWN) {
|
||||
return sCSDSupportLevel;
|
||||
}
|
||||
-
|
||||
- // Disabled due to Bug 1440461
|
||||
- sCSDSupportLevel = CSD_SUPPORT_NONE;
|
||||
+
|
||||
+ const char* currentDesktop = getenv("XDG_CURRENT_DESKTOP");
|
||||
+ if (currentDesktop) {
|
||||
+ if (strstr(currentDesktop, "GNOME") != nullptr) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_FULL;
|
||||
+ } else if (strstr(currentDesktop, "XFCE") != nullptr) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_FLAT;
|
||||
+ } else if (strstr(currentDesktop, "X-Cinnamon") != nullptr) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_FULL;
|
||||
+ } else if (strstr(currentDesktop, "KDE") != nullptr) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_NONE;
|
||||
+ } else if (strstr(currentDesktop, "LXDE") != nullptr) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_FLAT;
|
||||
+ } else if (strstr(currentDesktop, "openbox") != nullptr) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_FLAT;
|
||||
+ } else if (strstr(currentDesktop, "i3") != nullptr) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_NONE;
|
||||
+ } else if (strstr(currentDesktop, "MATE") != nullptr) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_FLAT;
|
||||
+ } else if (strstr(currentDesktop, "Unity") != nullptr) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_FLAT;
|
||||
+ } else if (strstr(currentDesktop, "Pantheon") != nullptr) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_FULL;
|
||||
+ } else if (strstr(currentDesktop, "LXQt") != nullptr) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_FULL;
|
||||
+ } else {
|
||||
+// Release or beta builds are not supposed to be broken
|
||||
+// so disable titlebar rendering on untested/unknown systems.
|
||||
+#if defined(RELEASE_OR_BETA)
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_NONE;
|
||||
+#else
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_FLAT;
|
||||
+#endif
|
||||
+ }
|
||||
+ } else {
|
||||
|
||||
+ // Require GTK 3.10 for GtkHeaderBar support and compatible window manager.
|
||||
+ if (gtk_check_version(3, 10, 0) != nullptr) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_NONE;
|
||||
+ return sCSDSupportLevel;
|
||||
+ }
|
||||
+
|
||||
+ // We don't support CSD_SUPPORT_FULL on Wayland
|
||||
+ if (!GDK_IS_X11_DISPLAY(gdk_display_get_default()) &&
|
||||
+ sCSDSupportLevel == CSD_SUPPORT_FULL) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_FLAT;
|
||||
+ }
|
||||
const char* currentDesktop = getenv("XDG_CURRENT_DESKTOP");
|
||||
if (currentDesktop) {
|
||||
// GNOME Flashback (fallback)
|
||||
if (strstr(currentDesktop, "GNOME-Flashback:GNOME") != nullptr) {
|
||||
sCSDSupportLevel = CSD_SUPPORT_CLIENT;
|
||||
// gnome-shell
|
||||
} else if (strstr(currentDesktop, "GNOME") != nullptr) {
|
||||
sCSDSupportLevel = CSD_SUPPORT_SYSTEM;
|
||||
diff -up firefox-60.0/widget/gtk/gtk3drawing.cpp.orig firefox-60.0/widget/gtk/gtk3drawing.cpp
|
||||
--- firefox-60.0/widget/gtk/gtk3drawing.cpp.orig 2018-04-26 22:07:36.000000000 +0200
|
||||
+++ firefox-60.0/widget/gtk/gtk3drawing.cpp 2018-04-30 13:38:19.083949868 +0200
|
||||
@@ -38,6 +38,16 @@ static ToolbarGTKMetrics sToolbarMetrics
|
||||
#define GTK_STATE_FLAG_CHECKED (1 << 11)
|
||||
#endif
|
||||
|
||||
+static GtkBorder
|
||||
+operator+=(GtkBorder& first, const GtkBorder& second)
|
||||
+{
|
||||
+ first.left += second.left;
|
||||
+ first.right += second.right;
|
||||
+ first.top += second.top;
|
||||
+ first.bottom += second.bottom;
|
||||
+ return first;
|
||||
+}
|
||||
+
|
||||
+ // Allow MOZ_GTK_TITLEBAR_DECORATION to override our heuristics
|
||||
+ const char* decorationOverride = getenv("MOZ_GTK_TITLEBAR_DECORATION");
|
||||
+ if (decorationOverride) {
|
||||
+ if (strcmp(decorationOverride, "none") == 0) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_NONE;
|
||||
+ } else if (strcmp(decorationOverride, "client") == 0) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_FLAT;
|
||||
+ } else if (strcmp(decorationOverride, "system") == 0) {
|
||||
+ sCSDSupportLevel = CSD_SUPPORT_FULL;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
return sCSDSupportLevel;
|
||||
static gint
|
||||
moz_gtk_get_tab_thickness(GtkStyleContext *style);
|
||||
|
||||
@@ -3056,6 +3066,76 @@ GetScrollbarMetrics(GtkOrientation aOrie
|
||||
return metrics;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * get_shadow_width() from gtkwindow.c is not public so we need
|
||||
+ * to implement it.
|
||||
+ */
|
||||
+bool
|
||||
+GetCSDDecorationSize(GtkWindow *aGtkWindow, GtkBorder* aDecorationSize)
|
||||
+{
|
||||
+ GtkStyleContext* context = gtk_widget_get_style_context(GTK_WIDGET(aGtkWindow));
|
||||
+ bool solidDecorations = gtk_style_context_has_class(context, "solid-csd");
|
||||
+ context = GetStyleContext(solidDecorations ?
|
||||
+ MOZ_GTK_WINDOW_DECORATION_SOLID :
|
||||
+ MOZ_GTK_WINDOW_DECORATION);
|
||||
+
|
||||
+ /* Always sum border + padding */
|
||||
+ GtkBorder padding;
|
||||
+ GtkStateFlags state = gtk_style_context_get_state(context);
|
||||
+ gtk_style_context_get_border(context, state, aDecorationSize);
|
||||
+ gtk_style_context_get_padding(context, state, &padding);
|
||||
+ *aDecorationSize += padding;
|
||||
+
|
||||
+ // Available on GTK 3.20+.
|
||||
+ static auto sGtkRenderBackgroundGetClip =
|
||||
+ (void (*)(GtkStyleContext*, gdouble, gdouble, gdouble, gdouble, GdkRectangle*))
|
||||
+ dlsym(RTLD_DEFAULT, "gtk_render_background_get_clip");
|
||||
+
|
||||
+ GtkBorder margin;
|
||||
+ gtk_style_context_get_margin(context, state, &margin);
|
||||
+
|
||||
+ GtkBorder extents = {0, 0, 0, 0};
|
||||
+ if (sGtkRenderBackgroundGetClip) {
|
||||
+ /* Get shadow extents but combine with style margin; use the bigger value.
|
||||
+ */
|
||||
+ GdkRectangle clip;
|
||||
+ sGtkRenderBackgroundGetClip(context, 0, 0, 0, 0, &clip);
|
||||
+
|
||||
+ extents.top = -clip.y;
|
||||
+ extents.right = clip.width + clip.x;
|
||||
+ extents.bottom = clip.height + clip.y;
|
||||
+ extents.left = -clip.x;
|
||||
+
|
||||
+ // Margin is used for resize grip size - it's not present on
|
||||
+ // popup windows.
|
||||
+ if (gtk_window_get_window_type(aGtkWindow) != GTK_WINDOW_POPUP) {
|
||||
+ extents.top = MAX(extents.top, margin.top);
|
||||
+ extents.right = MAX(extents.right, margin.right);
|
||||
+ extents.bottom = MAX(extents.bottom, margin.bottom);
|
||||
+ extents.left = MAX(extents.left, margin.left);
|
||||
+ }
|
||||
+ } else {
|
||||
+ /* If we can't get shadow extents use decoration-resize-handle instead
|
||||
+ * as a workaround. This is inspired by update_border_windows()
|
||||
+ * from gtkwindow.c although this is not 100% accurate as we emulate
|
||||
+ * the extents here.
|
||||
+ */
|
||||
+ gint handle;
|
||||
+ gtk_widget_style_get(GetWidget(MOZ_GTK_WINDOW),
|
||||
+ "decoration-resize-handle", &handle,
|
||||
+ NULL);
|
||||
+
|
||||
+ extents.top = handle + margin.top;
|
||||
+ extents.right = handle + margin.right;
|
||||
+ extents.bottom = handle + margin.bottom;
|
||||
+ extents.left = handle + margin.left;
|
||||
+ }
|
||||
+
|
||||
+ *aDecorationSize += extents;
|
||||
+
|
||||
+ return (sGtkRenderBackgroundGetClip != nullptr);
|
||||
+}
|
||||
+
|
||||
/* cairo_t *cr argument has to be a system-cairo. */
|
||||
gint
|
||||
moz_gtk_widget_paint(WidgetNodeType widget, cairo_t *cr,
|
||||
diff -up firefox-60.0/widget/gtk/gtkdrawing.h.orig firefox-60.0/widget/gtk/gtkdrawing.h
|
||||
--- firefox-60.0/widget/gtk/gtkdrawing.h.orig 2018-04-26 22:07:35.000000000 +0200
|
||||
+++ firefox-60.0/widget/gtk/gtkdrawing.h 2018-04-30 13:38:19.083949868 +0200
|
||||
@@ -334,6 +334,10 @@ typedef enum {
|
||||
*/
|
||||
MOZ_GTK_HEADER_BAR_BUTTON_MAXIMIZE_RESTORE,
|
||||
|
||||
+ /* Client-side window decoration node. Available on GTK 3.20+. */
|
||||
+ MOZ_GTK_WINDOW_DECORATION,
|
||||
+ MOZ_GTK_WINDOW_DECORATION_SOLID,
|
||||
+
|
||||
MOZ_GTK_WIDGET_NODE_COUNT
|
||||
} WidgetNodeType;
|
||||
|
||||
@@ -606,4 +610,17 @@ GetToolbarButtonMetrics(WidgetNodeType a
|
||||
int
|
||||
GetGtkHeaderBarButtonLayout(WidgetNodeType* aButtonLayout, int aMaxButtonNums);
|
||||
|
||||
+/**
|
||||
+ * Get size of CSD window extents of given GtkWindow.
|
||||
+ *
|
||||
+ * aGtkWindow [IN] Decorated window.
|
||||
+ * aDecorationSize [OUT] Returns calculated (or estimated) decoration
|
||||
+ * size of given aGtkWindow.
|
||||
+ *
|
||||
+ * returns: True if we have extract decoration size (for GTK 3.20+)
|
||||
+ * False if we have only an estimation (for GTK+ before 3.20+)
|
||||
+ */
|
||||
+bool
|
||||
+GetCSDDecorationSize(GtkWindow *aGtkWindow, GtkBorder* aDecorationSize);
|
||||
+
|
||||
#endif
|
||||
diff -up firefox-60.0/widget/gtk/nsWindow.cpp.orig firefox-60.0/widget/gtk/nsWindow.cpp
|
||||
--- firefox-60.0/widget/gtk/nsWindow.cpp.orig 2018-04-30 13:37:32.145122854 +0200
|
||||
+++ firefox-60.0/widget/gtk/nsWindow.cpp 2018-04-30 13:39:12.593752681 +0200
|
||||
@@ -127,6 +127,7 @@ using namespace mozilla::widget;
|
||||
#endif
|
||||
|
||||
#include "nsShmImage.h"
|
||||
+#include "gtkdrawing.h"
|
||||
|
||||
#include "nsIDOMWheelEvent.h"
|
||||
|
||||
@@ -3360,6 +3361,10 @@ nsWindow::OnWindowStateEvent(GtkWidget *
|
||||
aEvent->new_window_state & GDK_WINDOW_STATE_FULLSCREEN);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ if (mDrawInTitlebar && mCSDSupportLevel == CSD_SUPPORT_CLIENT) {
|
||||
+ UpdateClientOffsetForCSDWindow();
|
||||
+ }
|
||||
}
|
||||
|
||||
void
|
||||
@@ -6552,6 +6557,32 @@ nsWindow::ClearCachedResources()
|
||||
}
|
||||
}
|
||||
|
||||
+/* nsWindow::UpdateClientOffsetForCSDWindow() is designed to be called from
|
||||
+ * paint code to update mClientOffset any time. It also propagates
|
||||
+ * the mClientOffset to child tabs.
|
||||
+ *
|
||||
+ * It works only for CSD decorated GtkWindow.
|
||||
+ */
|
||||
+void
|
||||
+nsWindow::UpdateClientOffsetForCSDWindow()
|
||||
+{
|
||||
+ // _NET_FRAME_EXTENTS is not set on client decorated windows,
|
||||
+ // so we need to read offset between mContainer and toplevel mShell
|
||||
+ // window.
|
||||
+ if (mSizeState == nsSizeMode_Normal) {
|
||||
+ GtkBorder decorationSize;
|
||||
+ GetCSDDecorationSize(GTK_WINDOW(mShell), &decorationSize);
|
||||
+ mClientOffset = nsIntPoint(decorationSize.left, decorationSize.top);
|
||||
+ } else {
|
||||
+ mClientOffset = nsIntPoint(0, 0);
|
||||
+ }
|
||||
+
|
||||
+ // Send a WindowMoved notification. This ensures that TabParent
|
||||
+ // picks up the new client offset and sends it to the child process
|
||||
+ // if appropriate.
|
||||
+ NotifyWindowMoved(mBounds.x, mBounds.y);
|
||||
+}
|
||||
+
|
||||
nsresult
|
||||
nsWindow::SetNonClientMargins(LayoutDeviceIntMargin &aMargins)
|
||||
{
|
||||
@@ -6626,6 +6657,13 @@ nsWindow::SetDrawsInTitlebar(bool aState
|
||||
mNeedsShow = true;
|
||||
NativeResize();
|
||||
|
||||
+ // When we use system titlebar setup managed by Gtk+ we also get
|
||||
+ // _NET_FRAME_EXTENTS property for our toplevel window so we can't
|
||||
+ // update the client offset it here.
|
||||
+ if (aState) {
|
||||
+ UpdateClientOffsetForCSDWindow();
|
||||
+ }
|
||||
+
|
||||
gtk_widget_destroy(tmpWindow);
|
||||
}
|
||||
|
||||
diff -up firefox-60.0/widget/gtk/nsWindow.h.orig firefox-60.0/widget/gtk/nsWindow.h
|
||||
--- firefox-60.0/widget/gtk/nsWindow.h.orig 2018-04-30 13:37:32.143122861 +0200
|
||||
+++ firefox-60.0/widget/gtk/nsWindow.h 2018-04-30 13:38:19.085949861 +0200
|
||||
@@ -454,6 +454,8 @@ private:
|
||||
nsIWidgetListener* GetListener();
|
||||
bool IsComposited() const;
|
||||
|
||||
+ void UpdateClientOffsetForCSDWindow();
|
||||
+
|
||||
GtkWidget *mShell;
|
||||
MozContainer *mContainer;
|
||||
GdkWindow *mGdkWindow;
|
||||
diff -up firefox-60.0/widget/gtk/WidgetStyleCache.cpp.orig firefox-60.0/widget/gtk/WidgetStyleCache.cpp
|
||||
--- firefox-60.0/widget/gtk/WidgetStyleCache.cpp.orig 2018-04-26 22:07:35.000000000 +0200
|
||||
+++ firefox-60.0/widget/gtk/WidgetStyleCache.cpp 2018-04-30 13:38:19.085949861 +0200
|
||||
@@ -1285,6 +1285,22 @@ GetCssNodeStyleInternal(WidgetNodeType a
|
||||
"MOZ_GTK_HEADER_BAR_BUTTON_RESTORE is used as an icon only!");
|
||||
return nullptr;
|
||||
}
|
||||
+ case MOZ_GTK_WINDOW_DECORATION:
|
||||
+ {
|
||||
+ GtkStyleContext* parentStyle =
|
||||
+ CreateSubStyleWithClass(MOZ_GTK_WINDOW, "csd");
|
||||
+ style = CreateCSSNode("decoration", parentStyle);
|
||||
+ g_object_unref(parentStyle);
|
||||
+ break;
|
||||
+ }
|
||||
+ case MOZ_GTK_WINDOW_DECORATION_SOLID:
|
||||
+ {
|
||||
+ GtkStyleContext* parentStyle =
|
||||
+ CreateSubStyleWithClass(MOZ_GTK_WINDOW, "solid-csd");
|
||||
+ style = CreateCSSNode("decoration", parentStyle);
|
||||
+ g_object_unref(parentStyle);
|
||||
+ break;
|
||||
+ }
|
||||
default:
|
||||
return GetWidgetRootStyle(aNodeType);
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
# HG changeset patch
|
||||
# User Andrea Marchesini <amarchesini@mozilla.com>
|
||||
# Parent bb4eb640e7303ea68be982d824aa100caacce240
|
||||
# Parent fab938f4757d8487a87fbf911200ff0317612746
|
||||
Mozilla Bug#1447409 - DOMPrefs.h must be included in WorkerScope, r=qdot
|
||||
To fix 32bit build error for i586 target.
|
||||
|
||||
@ -14,7 +14,7 @@ diff --git a/dom/workers/WorkerScope.h b/dom/workers/WorkerScope.h
|
||||
#ifndef mozilla_dom_workerscope_h__
|
||||
#define mozilla_dom_workerscope_h__
|
||||
|
||||
#include "Workers.h"
|
||||
#include "mozilla/dom/WorkerCommon.h"
|
||||
#include "mozilla/DOMEventTargetHelper.h"
|
||||
+#include "mozilla/dom/DOMPrefs.h"
|
||||
#include "mozilla/dom/Headers.h"
|
||||
@ -22,6 +22,6 @@ diff --git a/dom/workers/WorkerScope.h b/dom/workers/WorkerScope.h
|
||||
#include "nsWeakReference.h"
|
||||
#include "mozilla/dom/ImageBitmapSource.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
#ifdef XP_WIN
|
||||
#undef PostMessage
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
# HG changeset patch
|
||||
# Parent 97234138e3aafe66fc7f17c8f530e7c534af2fc2
|
||||
# Parent 9cc0c990890e64f69ed068cf1a4534535bcc50a7
|
||||
Description: Add KDE integration to Firefox (toolkit parts)
|
||||
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
|
||||
Author: Lubos Lunak <lunak@suse.com>
|
||||
@ -27,7 +27,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
using namespace mozilla;
|
||||
|
||||
#ifdef DEBUG
|
||||
@@ -4235,25 +4236,37 @@ Preferences::InitInitialObjects()
|
||||
@@ -3868,25 +3869,37 @@ Preferences::InitInitialObjects()
|
||||
// application pref files for backwards compatibility.
|
||||
static const char* specialFiles[] = {
|
||||
#if defined(XP_MACOSX)
|
||||
@ -65,7 +65,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
|
||||
// Load jar:$app/omni.jar!/defaults/preferences/*.js
|
||||
// or jar:$gre/omni.jar!/defaults/preferences/*.js.
|
||||
@@ -4302,17 +4315,17 @@ Preferences::InitInitialObjects()
|
||||
@@ -3935,17 +3948,17 @@ Preferences::InitInitialObjects()
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIFile> path = do_QueryInterface(elem);
|
||||
@ -153,12 +153,12 @@ diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpac
|
||||
diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build
|
||||
--- a/toolkit/components/downloads/moz.build
|
||||
+++ b/toolkit/components/downloads/moz.build
|
||||
@@ -17,9 +17,13 @@ XPIDL_SOURCES += [
|
||||
XPIDL_MODULE = 'downloads'
|
||||
@@ -41,10 +41,14 @@ EXTRA_JS_MODULES += [
|
||||
|
||||
UNIFIED_SOURCES += [
|
||||
'nsDownloadManager.cpp'
|
||||
]
|
||||
if CONFIG['MOZ_PLACES']:
|
||||
EXTRA_JS_MODULES += [
|
||||
'DownloadHistory.jsm',
|
||||
]
|
||||
|
||||
FINAL_LIBRARY = 'xul'
|
||||
|
||||
@ -166,11 +166,12 @@ diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloa
|
||||
+ '/toolkit/xre'
|
||||
+]
|
||||
+
|
||||
CXXFLAGS += CONFIG['TK_CFLAGS']
|
||||
with Files('**'):
|
||||
BUG_COMPONENT = ('Toolkit', 'Download Manager')
|
||||
diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
|
||||
--- a/toolkit/content/jar.mn
|
||||
+++ b/toolkit/content/jar.mn
|
||||
@@ -67,16 +67,18 @@ toolkit.jar:
|
||||
@@ -69,16 +69,18 @@ toolkit.jar:
|
||||
content/global/bindings/checkbox.xml (widgets/checkbox.xml)
|
||||
content/global/bindings/colorpicker.xml (widgets/colorpicker.xml)
|
||||
content/global/bindings/datekeeper.js (widgets/datekeeper.js)
|
||||
@ -193,7 +194,7 @@ diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/di
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/toolkit/content/widgets/dialog-kde.xml
|
||||
@@ -0,0 +1,477 @@
|
||||
@@ -0,0 +1,478 @@
|
||||
+<?xml version="1.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
|
||||
@ -209,7 +210,7 @@ new file mode 100644
|
||||
+ xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
+ xmlns:xbl="http://www.mozilla.org/xbl">
|
||||
+
|
||||
+ <binding id="dialog" extends="chrome://global/content/bindings/general.xml#root-element">
|
||||
+ <binding id="dialog">
|
||||
+ <resources>
|
||||
+ <stylesheet src="chrome://global/skin/dialog.css"/>
|
||||
+ </resources>
|
||||
@ -448,9 +449,9 @@ new file mode 100644
|
||||
+ if (!this._mStrBundle) {
|
||||
+ // need to create string bundle manually instead of using <xul:stringbundle/>
|
||||
+ // see bug 63370 for details
|
||||
+ this._mStrBundle = Components.classes["@mozilla.org/intl/stringbundle;1"]
|
||||
+ .getService(Components.interfaces.nsIStringBundleService)
|
||||
+ .createBundle("chrome://global/locale/dialog.properties");
|
||||
+ this._mStrBundle = Cc["@mozilla.org/intl/stringbundle;1"]
|
||||
+ .getService(Ci.nsIStringBundleService)
|
||||
+ .createBundle("chrome://global/locale/dialog.properties");
|
||||
+ }
|
||||
+ return this._mStrBundle;
|
||||
+ ]]></getter>
|
||||
@ -625,6 +626,7 @@ new file mode 100644
|
||||
+ if (handler != "") {
|
||||
+ var fn = new Function("event", handler);
|
||||
+ var returned = fn(event);
|
||||
+ // eslint-disable-next-line mozilla/no-compare-against-boolean-literals
|
||||
+ if (returned == false)
|
||||
+ noCancel = false;
|
||||
+ }
|
||||
@ -663,7 +665,7 @@ new file mode 100644
|
||||
+ <handler event="focus" phase="capturing">
|
||||
+ var btn = this.getButton(this.defaultButton);
|
||||
+ if (btn)
|
||||
+ btn.setAttribute("default", event.originalTarget == btn || !(event.originalTarget instanceof Components.interfaces.nsIDOMXULButtonElement));
|
||||
+ btn.setAttribute("default", event.originalTarget == btn || !(event.originalTarget instanceof Ci.nsIDOMXULButtonElement));
|
||||
+ </handler>
|
||||
+#endif
|
||||
+ </handlers>
|
||||
@ -674,7 +676,7 @@ new file mode 100644
|
||||
diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downloads/nsHelperAppDlg.js
|
||||
--- a/toolkit/mozapps/downloads/nsHelperAppDlg.js
|
||||
+++ b/toolkit/mozapps/downloads/nsHelperAppDlg.js
|
||||
@@ -626,17 +626,17 @@ nsUnknownContentTypeDialog.prototype = {
|
||||
@@ -627,17 +627,17 @@ nsUnknownContentTypeDialog.prototype = {
|
||||
else
|
||||
typeString = mimeInfo.MIMEType;
|
||||
}
|
||||
@ -693,7 +695,7 @@ diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downl
|
||||
},
|
||||
|
||||
// Returns true if opening the default application makes sense.
|
||||
@@ -800,17 +800,17 @@ nsUnknownContentTypeDialog.prototype = {
|
||||
@@ -801,17 +801,17 @@ nsUnknownContentTypeDialog.prototype = {
|
||||
switch (this.dialogElement("openHandler").selectedIndex) {
|
||||
case 0:
|
||||
// No app need be specified in this case.
|
||||
@ -712,7 +714,7 @@ diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downl
|
||||
this.mDialog.document.documentElement.getButton("accept").disabled = !ok;
|
||||
},
|
||||
|
||||
@@ -1065,30 +1065,57 @@ nsUnknownContentTypeDialog.prototype = {
|
||||
@@ -1066,30 +1066,57 @@ nsUnknownContentTypeDialog.prototype = {
|
||||
|
||||
if (params.handlerApp &&
|
||||
params.handlerApp.executable &&
|
||||
@ -720,15 +722,15 @@ diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downl
|
||||
// Remember the file they chose to run.
|
||||
this.chosenApp = params.handlerApp;
|
||||
}
|
||||
} else if ("@mozilla.org/applicationchooser;1" in Components.classes) {
|
||||
- var nsIApplicationChooser = Components.interfaces.nsIApplicationChooser;
|
||||
- var appChooser = Components.classes["@mozilla.org/applicationchooser;1"]
|
||||
- .createInstance(nsIApplicationChooser);
|
||||
} else if ("@mozilla.org/applicationchooser;1" in Cc) {
|
||||
- var nsIApplicationChooser = Ci.nsIApplicationChooser;
|
||||
- var appChooser = Cc["@mozilla.org/applicationchooser;1"]
|
||||
- .createInstance(nsIApplicationChooser);
|
||||
- appChooser.init(this.mDialog, this.dialogElement("strings").getString("chooseAppFilePickerTitle"));
|
||||
- var contentTypeDialogObj = this;
|
||||
- let appChooserCallback = function appChooserCallback_done(aResult) {
|
||||
- if (aResult) {
|
||||
- contentTypeDialogObj.chosenApp = aResult.QueryInterface(Components.interfaces.nsILocalHandlerApp);
|
||||
- contentTypeDialogObj.chosenApp = aResult.QueryInterface(Ci.nsILocalHandlerApp);
|
||||
+ // handle the KDE case which is implemented in the filepicker
|
||||
+ // therefore falling back to Gtk2 like behaviour if KDE is running
|
||||
+ // FIXME this should be better handled in the nsIApplicationChooser
|
||||
@ -750,7 +752,7 @@ diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downl
|
||||
+ // Remember the file they chose to run.
|
||||
+ var localHandlerApp =
|
||||
+ Components.classes["@mozilla.org/uriloader/local-handler-app;1"].
|
||||
+ createInstance(Components.interfaces.nsILocalHandlerApp);
|
||||
+ createInstance(Components.interfaces.nsILocalHandlerApp);
|
||||
+ localHandlerApp.executable = fp.file;
|
||||
+ this.chosenApp = localHandlerApp;
|
||||
}
|
||||
@ -760,14 +762,14 @@ diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downl
|
||||
- // The finishChooseApp is called from appChooserCallback
|
||||
- return;
|
||||
+ } else {
|
||||
+ var nsIApplicationChooser = Components.interfaces.nsIApplicationChooser;
|
||||
+ var appChooser = Components.classes["@mozilla.org/applicationchooser;1"]
|
||||
+ .createInstance(nsIApplicationChooser);
|
||||
+ var nsIApplicationChooser = Ci.nsIApplicationChooser;
|
||||
+ var appChooser = Cc["@mozilla.org/applicationchooser;1"]
|
||||
+ .createInstance(nsIApplicationChooser);
|
||||
+ appChooser.init(this.mDialog, this.dialogElement("strings").getString("chooseAppFilePickerTitle"));
|
||||
+ var contentTypeDialogObj = this;
|
||||
+ let appChooserCallback = function appChooserCallback_done(aResult) {
|
||||
+ if (aResult) {
|
||||
+ contentTypeDialogObj.chosenApp = aResult.QueryInterface(Components.interfaces.nsILocalHandlerApp);
|
||||
+ contentTypeDialogObj.chosenApp = aResult.QueryInterface(Ci.nsILocalHandlerApp);
|
||||
+ }
|
||||
+ contentTypeDialogObj.finishChooseApp();
|
||||
+ };
|
||||
@ -776,9 +778,9 @@ diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downl
|
||||
+ return;
|
||||
+ }
|
||||
} else {
|
||||
var nsIFilePicker = Components.interfaces.nsIFilePicker;
|
||||
var fp = Components.classes["@mozilla.org/filepicker;1"]
|
||||
.createInstance(nsIFilePicker);
|
||||
var nsIFilePicker = Ci.nsIFilePicker;
|
||||
var fp = Cc["@mozilla.org/filepicker;1"]
|
||||
.createInstance(nsIFilePicker);
|
||||
fp.init(this.mDialog,
|
||||
this.dialogElement("strings").getString("chooseAppFilePickerTitle"),
|
||||
nsIFilePicker.modeOpen);
|
||||
@ -880,7 +882,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
|
||||
diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
|
||||
--- a/toolkit/xre/moz.build
|
||||
+++ b/toolkit/xre/moz.build
|
||||
@@ -61,17 +61,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
|
||||
@@ -65,17 +65,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
|
||||
'../components/printingui',
|
||||
]
|
||||
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit':
|
||||
@ -1879,7 +1881,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
||||
|
||||
GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
|
||||
|
||||
@@ -603,8 +630,233 @@ nsFilePicker::Done(GtkWidget* file_choos
|
||||
@@ -608,8 +635,233 @@ nsFilePicker::Done(GtkWidget* file_choos
|
||||
if (mCallback) {
|
||||
mCallback->Done(result);
|
||||
mCallback = nullptr;
|
||||
@ -2158,7 +2160,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
||||
const char* directive;
|
||||
int argc;
|
||||
|
||||
@@ -466,16 +467,17 @@ ParseManifest(NSLocationType aType, File
|
||||
@@ -444,16 +445,17 @@ ParseManifest(NSLocationType aType, File
|
||||
NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled");
|
||||
NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired");
|
||||
NS_NAMED_LITERAL_STRING(kApplication, "application");
|
||||
@ -2176,7 +2178,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
||||
NS_NAMED_LITERAL_STRING(kMain, "main");
|
||||
NS_NAMED_LITERAL_STRING(kContent, "content");
|
||||
|
||||
@@ -526,44 +528,49 @@ ParseManifest(NSLocationType aType, File
|
||||
@@ -499,44 +501,49 @@ ParseManifest(NSLocationType aType, File
|
||||
CopyUTF8toUTF16(s, abi);
|
||||
abi.Insert(char16_t('_'), 0);
|
||||
abi.Insert(osTarget, 0);
|
||||
@ -2226,7 +2228,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
||||
process = kMain;
|
||||
}
|
||||
|
||||
@@ -666,25 +673,27 @@ ParseManifest(NSLocationType aType, File
|
||||
@@ -638,25 +645,27 @@ ParseManifest(NSLocationType aType, File
|
||||
TriState stOsVersion = eUnspecified;
|
||||
TriState stOs = eUnspecified;
|
||||
TriState stABI = eUnspecified;
|
||||
@ -2254,7 +2256,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
||||
}
|
||||
|
||||
#if defined(MOZ_WIDGET_ANDROID)
|
||||
@@ -729,16 +738,17 @@ ParseManifest(NSLocationType aType, File
|
||||
@@ -701,16 +710,17 @@ ParseManifest(NSLocationType aType, File
|
||||
}
|
||||
|
||||
if (!ok ||
|
||||
@ -2292,7 +2294,7 @@ diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build
|
||||
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
--- a/xpcom/io/nsLocalFileUnix.cpp
|
||||
+++ b/xpcom/io/nsLocalFileUnix.cpp
|
||||
@@ -45,16 +45,17 @@
|
||||
@@ -46,16 +46,17 @@
|
||||
#include "prproces.h"
|
||||
#include "nsIDirectoryEnumerator.h"
|
||||
#include "nsISimpleEnumerator.h"
|
||||
@ -2310,7 +2312,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
#include "prmem.h"
|
||||
#include "plbase64.h"
|
||||
|
||||
@@ -1934,59 +1935,74 @@ nsLocalFile::SetPersistentDescriptor(con
|
||||
@@ -1955,59 +1956,74 @@ nsLocalFile::SetPersistentDescriptor(con
|
||||
return InitWithNativePath(aPersistentDescriptor);
|
||||
#endif
|
||||
}
|
||||
|
@ -13,25 +13,25 @@ home/abuild/rpmbuild/BUILD/obj/dom/bindings/UnifiedBindings16.cpp
|
||||
[ 1636s] c++: internal compiler error: Killed (program cc1plus)
|
||||
[ 1636s] Please submit a full bug report,
|
||||
|
||||
diff --git a/python/mozbuild/mozbuild/backend/common.py b/python/mozbuild/mozbuild/backend/common.py
|
||||
--- a/python/mozbuild/mozbuild/backend/common.py
|
||||
+++ b/python/mozbuild/mozbuild/backend/common.py
|
||||
@@ -386,17 +386,17 @@ class CommonBackend(BuildBackend):
|
||||
)
|
||||
self._handle_generated_sources(manager.expected_build_output_files())
|
||||
diff --git a/python/mozbuild/mozbuild/frontend/data.py b/python/mozbuild/mozbuild/frontend/data.py
|
||||
--- a/python/mozbuild/mozbuild/frontend/data.py
|
||||
+++ b/python/mozbuild/mozbuild/frontend/data.py
|
||||
@@ -310,17 +310,17 @@ class WebIDLCollection(ContextDerived):
|
||||
@property
|
||||
def unified_source_mapping(self):
|
||||
# Bindings are compiled in unified mode to speed up compilation and
|
||||
# to reduce linker memory size. Note that test bindings are separated
|
||||
# from regular ones so tests bindings aren't shipped.
|
||||
unified_source_mapping = list(group_unified_files(webidls.all_regular_cpp_basenames(),
|
||||
unified_prefix='UnifiedBindings',
|
||||
unified_suffix='cpp',
|
||||
- files_per_unified_file=32))
|
||||
+ files_per_unified_file=16))
|
||||
self._write_unified_files(unified_source_mapping, bindings_dir,
|
||||
poison_windows_h=True)
|
||||
self._handle_webidl_build(bindings_dir, unified_source_mapping,
|
||||
webidls,
|
||||
manager.expected_build_output_files(),
|
||||
manager.GLOBAL_DEFINE_FILES)
|
||||
return list(group_unified_files(self.all_regular_cpp_basenames(),
|
||||
unified_prefix='UnifiedBindings',
|
||||
unified_suffix='cpp',
|
||||
- files_per_unified_file=32))
|
||||
+ files_per_unified_file=16))
|
||||
|
||||
def _write_unified_file(self, unified_file, source_filenames,
|
||||
def all_source_files(self):
|
||||
from mozwebidlcodegen import WebIDLCodegenManager
|
||||
return (sorted(list(WebIDLCodegenManager.GLOBAL_DEFINE_FILES)) +
|
||||
sorted(set(p for p, _ in self.unified_source_mapping)))
|
||||
|
||||
|
||||
class IPDLCollection(ContextDerived):
|
||||
|
@ -1,2 +1,2 @@
|
||||
REV=6b51784853e4
|
||||
REV=ea4f3168c604
|
||||
REPO=http://hg.mozilla.org/releases/mozilla-release
|
||||
|
Loading…
Reference in New Issue
Block a user