Hello community, here is the log from the commit of package MozillaFirefox for openSUSE:Factory checked in at 2018-05-11 11:26:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/MozillaFirefox (Old) and /work/SRC/openSUSE:Factory/.MozillaFirefox.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "MozillaFirefox" Fri May 11 11:26:43 2018 rev:271 rq:605919 version:60.0 Changes: -------- --- /work/SRC/openSUSE:Factory/MozillaFirefox/MozillaFirefox.changes 2018-05-03 12:31:10.690852233 +0200 +++ /work/SRC/openSUSE:Factory/.MozillaFirefox.new/MozillaFirefox.changes 2018-05-11 11:26:45.463698832 +0200 @@ -1,0 +2,87 @@ +Mon May 7 08:32:28 UTC 2018 - w...@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) + MFSA 2018-11 (bsc#1092548) + * CVE-2018-5154 (bmo#1443092) + Use-after-free with SVG animations and clip paths + * CVE-2018-5155 (bmo#1448774) + Use-after-free with SVG animations and text paths + * CVE-2018-5157 (bmo#1449898) + Same-origin bypass of PDF Viewer to view protected PDF files + * CVE-2018-5158 (bmo#1452075) + Malicious PDF can inject JavaScript into PDF Viewer + * CVE-2018-5159 (bmo#1441941) + Integer overflow and out-of-bounds write in Skia + * CVE-2018-5160 (bmo#1436117) + Uninitialized memory use by WebRTC encoder + * CVE-2018-5152 (bmo#1415644, bmo#1427289) + WebExtensions information leak through webRequest API + * CVE-2018-5153 (bmo#1436809) + Out-of-bounds read in mixed content websocket messages + * CVE-2018-5163 (bmo#1426353) + Replacing cached data in JavaScript Start-up Bytecode Cache + * CVE-2018-5164 (bmo#1416045) + CSP not applied to all multipart content sent with + multipart/x-mixed-replace + * CVE-2018-5166 (bmo#1437325) + WebExtension host permission bypass through filterReponseData + * CVE-2018-5167 (bmo#1447969) + Improper linkification of chrome: and javascript: content in + web console and JavaScript debugger + * CVE-2018-5168 (bmo#1449548) + Lightweight themes can be installed without user interaction + * CVE-2018-5169 (bmo#1319157) + Dragging and dropping link text onto home button can set home page + to include chrome pages + * CVE-2018-5172 (bmo#1436482) + Pasted script from clipboard can run in the Live Bookmarks page + or PDF viewer + * CVE-2018-5173 (bmo#1438025) + File name spoofing of Downloads panel with Unicode characters + * CVE-2018-5174 (bmo#1447080) (Windows-only) + Windows Defender SmartScreen UI runs with less secure behavior + for downloaded files in Windows 10 April 2018 Update + * CVE-2018-5175 (bmo#1432358) + Universal CSP bypass on sites using strict-dynamic in their policies + * CVE-2018-5176 (bmo#1442840) + JSON Viewer script injection + * CVE-2018-5177 (bmo#1451908) + Buffer overflow in XSLT during number formatting + * CVE-2018-5165 (bmo#1451452) + Checkbox for enabling Flash protected mode is inverted in 32-bit + Firefox + * CVE-2018-5180 (bmo#1444086) + heap-use-after-free in mozilla::WebGLContext::DrawElementsInstanced + * CVE-2018-5181 (bmo#1424107) + Local file can be displayed in noopener tab through drag and + drop of hyperlink + * CVE-2018-5182 (bmo#1435908) + Local file can be displayed from hyperlink dragged and dropped + on addressbar + * CVE-2018-5151 + Memory safety bugs fixed in Firefox 60 + * CVE-2018-5150 + Memory safety bugs fixed in Firefox 60 and Firefox ESR 52.8 +- removed obsolete patches + 0001-Bug-1435695-WebRTC-fails-to-build-with-GCC-8-r-dmino.patch + mozilla-bmo1005535.patch +- requires NSPR 4.19 and NSS 3.36.1 +- requires rust 1.24 or higher +- use upstream source archive and detached signature for + source verification + +------------------------------------------------------------------- +Thu May 3 14:33:37 UTC 2018 - guillaume.gar...@opensuse.org + +- Fix armv7 build by: + * adding RUSTFLAGS="-Cdebuginfo=0" + * updating _constraints for %arm + +------------------------------------------------------------------- Old: ---- 0001-Bug-1435695-WebRTC-fails-to-build-with-GCC-8-r-dmino.patch firefox-59.0.3-source.tar.xz l10n-59.0.3.tar.xz mozilla-bmo1005535.patch New: ---- firefox-60.0.source.tar.xz firefox-60.0.source.tar.xz.asc l10n-60.0.tar.xz mozilla.keyring ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ MozillaFirefox.spec ++++++ --- /var/tmp/diff_new_pack.VfYb72/_old 2018-05-11 11:27:16.518566975 +0200 +++ /var/tmp/diff_new_pack.VfYb72/_new 2018-05-11 11:27:16.542566100 +0200 @@ -18,11 +18,12 @@ # 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 +%define source_prefix firefox-%{mainver} # PIE, full relro (x86_64 for now) %define build_hardened 1 @@ -70,11 +71,11 @@ 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 @@ -120,7 +121,7 @@ License: MPL-2.0 Group: Productivity/Networking/Web/Browsers Url: http://www.mozilla.org/ -Source: firefox-%{version}-source.tar.xz +Source: http://ftp.mozilla.org/pub/firefox/releases/%{version}/source/firefox-%{version}.source.tar.xz Source1: MozillaFirefox.desktop Source2: MozillaFirefox-rpmlintrc Source3: mozilla.sh.in @@ -141,6 +142,8 @@ # please get your own set of keys. Source18: mozilla-api-key Source19: google-api-key +Source20: http://ftp.mozilla.org/pub/firefox/releases/%{version}/source/firefox-%{version}.source.tar.xz.asc +Source21: mozilla.keyring # Gecko/Toolkit Patch1: mozilla-nongnome-proxies.patch Patch2: mozilla-kde.patch @@ -150,11 +153,9 @@ 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 +209,7 @@ %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} @@ -250,11 +251,11 @@ %prep %if %localize -%setup -q -n mozilla -b 7 -b 10 +%setup -q -n %{source_prefix} -b 7 -b 10 %else -%setup -q -n mozilla +%setup -q -n %{source_prefix} %endif -cd $RPM_BUILD_DIR/mozilla +cd $RPM_BUILD_DIR/%{source_prefix} %patch1 -p1 %patch2 -p1 %patch3 -p1 @@ -265,13 +266,11 @@ %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 @@ -321,6 +320,9 @@ export CFLAGS="$CFLAGS -mminimal-toc" %endif export CXXFLAGS="$CFLAGS" +%ifarch %{arm} +export RUSTFLAGS="-Cdebuginfo=0" +%endif export MOZCONFIG=$RPM_BUILD_DIR/mozconfig cat << EOF > $MOZCONFIG mk_add_options MOZILLA_OFFICIAL=1 @@ -375,8 +377,12 @@ %ifarch %arm ac_add_options --with-fpu=vfpv3-d16 ac_add_options --with-float-abi=hard +%ifarch armv6l armv6hl +ac_add_options --with-arch=armv6 +%else ac_add_options --with-arch=armv7-a %endif +%endif %ifarch %arm s390x ac_add_options --disable-webrtc %endif @@ -409,7 +415,7 @@ %if %localize rm -f %{_tmppath}/translations.* touch %{_tmppath}/translations.{common,other} -for locale in $(cat $RPM_BUILD_DIR/mozilla/browser/locales/shipped-locales) ; do +for locale in $(cat $RPM_BUILD_DIR/%{source_prefix}/browser/locales/shipped-locales) ; do case $locale in ja-JP-mac|en-US|'') ;; @@ -417,7 +423,7 @@ pushd $RPM_BUILD_DIR/compare-locales PYTHONPATH=lib \ scripts/compare-locales -m ../l10n-merged/$locale \ - ../mozilla/browser/locales/l10n.ini ../l10n $locale + ../%{source_prefix}/browser/locales/l10n.ini ../l10n $locale popd LOCALE_MERGEDIR=$RPM_BUILD_DIR/l10n-merged/$locale \ make -C browser/locales langpack-$locale @@ -448,7 +454,7 @@ -name "*.xml" -o \ -name "*.css" | xargs chmod a-x # remove mkdir.done files from installed base -find %{buildroot}%{progdir} -name ".mkdir.done" | xargs rm +find %{buildroot}%{progdir} -name ".mkdir.done" | xargs rm || : # overwrite the mozilla start-script and link it to /usr/bin mkdir --parents %{buildroot}/usr/bin sed "s:%%PREFIX:%{_prefix}:g @@ -589,7 +595,7 @@ %{progdir}/application.ini %{progdir}/chrome.manifest %{progdir}/dependentlibs.list -%{progdir}/icudt*.dat +#%{progdir}/icudt*.dat %{progdir}/*.so %{progdir}/omni.ja %{progdir}/fonts/ ++++++ compare-locales.tar.xz ++++++ ++++++ create-tar.sh ++++++ --- /var/tmp/diff_new_pack.VfYb72/_old 2018-05-11 11:27:16.778557500 +0200 +++ /var/tmp/diff_new_pack.VfYb72/_new 2018-05-11 11:27:16.782557354 +0200 @@ -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 ) @@ -54,7 +54,7 @@ fi echo "creating archive..." -tar $compression -cf firefox-$VERSION-source.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS mozilla +tar $compression -cf firefox-$VERSION.source.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS mozilla # l10n echo "fetching locales..." ++++++ firefox-59.0.3-source.tar.xz -> firefox-60.0.source.tar.xz ++++++ /work/SRC/openSUSE:Factory/MozillaFirefox/firefox-59.0.3-source.tar.xz /work/SRC/openSUSE:Factory/.MozillaFirefox.new/firefox-60.0.source.tar.xz differ: char 8, line 1 ++++++ firefox-kde.patch ++++++ --- /var/tmp/diff_new_pack.VfYb72/_old 2018-05-11 11:27:16.842555167 +0200 +++ /var/tmp/diff_new_pack.VfYb72/_new 2018-05-11 11:27:16.842555167 +0200 @@ -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 @@ +# 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 @@ + tabsintitlebar="true" +#endif + titlemenuseparator="&mainWindow.titlemodifiermenuseparator;" -+ lightweightthemes="true" + windowtype="navigator:browser" + macanimationtype="document" + screenX="4" screenY="4" @@ -75,6 +75,7 @@ + +<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 @@ + 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 @@ + + <panel type="autocomplete-richlistbox" + id="PopupAutoComplete" ++ role="group" + noautofocus="true" + hidden="true" + overflowpadding="4" @@ -151,11 +154,16 @@ + 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 @@ + </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 @@ + +#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 @@ + <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 @@ + + <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 @@ +#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 @@ +#endif + + <tabs id="tabbrowser-tabs" -+ tabbrowser="content" + flex="1" + setfocus="false" + tooltip="tabbrowser-tab-tooltip" @@ -698,7 +708,6 @@ + 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 @@ + +#ifdef XP_MACOSX + <hbox class="titlebar-placeholder" type="fullscreen-button" -+ persist="width" + skipintoolbarset="true"/> +#endif +#endif @@ -777,6 +785,8 @@ + 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 @@ + completeselectedindex="true" + shrinkdelay="250" + tabscrolling="true" -+ showcommentcolumn="true" -+ showimagecolumn="true" + newlines="stripsurroundingwhitespace" + ontextentered="this.handleCommand(param);" + ontextreverted="return this.handleRevert();" @@ -820,6 +828,10 @@ + 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 @@ + 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 @@ + </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 @@ + 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 @@ + 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 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 @@ + <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 @@ 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/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 @@ 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 @@ 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 ++++++ l10n-59.0.3.tar.xz -> l10n-60.0.tar.xz ++++++ /work/SRC/openSUSE:Factory/MozillaFirefox/l10n-59.0.3.tar.xz /work/SRC/openSUSE:Factory/.MozillaFirefox.new/l10n-60.0.tar.xz differ: char 8, line 1 ++++++ mozilla-enable-csd.patch ++++++ ++++ 701 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/MozillaFirefox/mozilla-enable-csd.patch ++++ and /work/SRC/openSUSE:Factory/.MozillaFirefox.new/mozilla-enable-csd.patch ++++++ mozilla-i586-domPrefs.patch ++++++ --- /var/tmp/diff_new_pack.VfYb72/_old 2018-05-11 11:27:17.094545983 +0200 +++ /var/tmp/diff_new_pack.VfYb72/_new 2018-05-11 11:27:17.098545837 +0200 @@ -1,6 +1,6 @@ # HG changeset patch # User Andrea Marchesini <amarches...@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 @@ #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 @@ #include "nsWeakReference.h" #include "mozilla/dom/ImageBitmapSource.h" - namespace mozilla { - namespace dom { - + #ifdef XP_WIN + #undef PostMessage + #endif ++++++ mozilla-kde.patch ++++++ --- /var/tmp/diff_new_pack.VfYb72/_old 2018-05-11 11:27:17.110545400 +0200 +++ /var/tmp/diff_new_pack.VfYb72/_new 2018-05-11 11:27:17.110545400 +0200 @@ -1,5 +1,5 @@ # HG changeset patch -# Parent 97234138e3aafe66fc7f17c8f530e7c534af2fc2 +# Parent 9cc0c990890e64f69ed068cf1a4534535bcc50a7 Description: Add KDE integration to Firefox (toolkit parts) Author: Wolfgang Rosenauer <wolfg...@rosenauer.org> Author: Lubos Lunak <lu...@suse.com> @@ -27,7 +27,7 @@ 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 @@ // 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/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 @@ + '/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 @@ 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 @@ + 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 @@ + 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 @@ + 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 @@ + <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 @@ 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 @@ }, // 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 @@ 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 @@ // 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 @@ + // 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 @@ - // 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 @@ + 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/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 @@ 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 @@ 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 @@ 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 @@ 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 @@ } #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/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 @@ #include "prmem.h" #include "plbase64.h" -@@ -1934,59 +1935,74 @@ nsLocalFile::SetPersistentDescriptor(con +@@ -1955,59 +1956,74 @@ nsLocalFile::SetPersistentDescriptor(con return InitWithNativePath(aPersistentDescriptor); #endif } ++++++ mozilla-reduce-files-per-UnifiedBindings.patch ++++++ --- /var/tmp/diff_new_pack.VfYb72/_old 2018-05-11 11:27:17.150543942 +0200 +++ /var/tmp/diff_new_pack.VfYb72/_new 2018-05-11 11:27:17.150543942 +0200 @@ -13,25 +13,25 @@ [ 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): ++++++ mozilla.keyring ++++++ This file contains the PGP keys of various developers that work on Mozilla and its subprojects (such as Firefox and Thunderbird). Please realize that this file itself or the public key servers may be compromised. You are encouraged to validate the authenticity of these keys in an out-of-band manner. Mozilla users: pgp < KEY pub rsa4096 2015-07-17 [SC] 14F26682D0916CDD81E37B6D61B7B526D98F0353 uid [ full ] Mozilla Software Releases <rele...@mozilla.com> sub rsa4096 2015-07-17 [S] [expires: 2017-07-16] sub rsa4096 2017-06-22 [S] [expires: 2019-06-22] -----BEGIN PGP PUBLIC KEY BLOCK----- Version: SKS 1.1.5 Comment: Hostname: keyserver.mozilla.org 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 MuTo71rAVDLtxerc+GNq0GI= =YjV6 -----END PGP PUBLIC KEY BLOCK----- ++++++ source-stamp.txt ++++++ --- /var/tmp/diff_new_pack.VfYb72/_old 2018-05-11 11:27:17.214541609 +0200 +++ /var/tmp/diff_new_pack.VfYb72/_new 2018-05-11 11:27:17.218541463 +0200 @@ -1,2 +1,2 @@ -REV=6b51784853e4 +REV=ea4f3168c604 REPO=http://hg.mozilla.org/releases/mozilla-release