1
0

- 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:
Wolfgang Rosenauer 2018-05-08 13:14:23 +00:00 committed by Git OBS Bridge
parent f9f24f9c98
commit 0344382ac8
17 changed files with 797 additions and 384 deletions

View File

@ -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

View File

@ -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

View File

@ -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/

View File

@ -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>

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:37774ab800fa0eb9045c834ebe7ada3cd82b866c3ef00c23cd7abac312e414ac
size 28864
oid sha256:971053a42b39417bb7d549e3de0d4b267732bb961e5178bbc3a2340b58f84b31
size 28368

View File

@ -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 )

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c64851cc34baa35b54680d4339d940dbd81ec297c78b1ac1b57d3b6b5271a92b
size 270321944

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f298fbe76fb70fb80aba87d9f6febe81b702b397f17a008dc124db632197516e
size 283237956

View File

@ -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

View File

@ -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
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:818593ebff301f74bf90ad714e263398c2fc67d318f687b8049c774ffdc56a2b
size 49782444

View File

@ -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;

View File

@ -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);
}

View File

@ -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

View File

@ -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
}

View File

@ -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):

View File

@ -1,2 +1,2 @@
REV=6b51784853e4
REV=ea4f3168c604
REPO=http://hg.mozilla.org/releases/mozilla-release