- update to Firefox 55.0.3

* Fix an issue with addons when using a path containing non-ascii
    characters (bmo#1389160)
  * Fix file uploads to some websites, including YouTube (bmo#1383518)
- fix Google API key build integration
- add mozilla-ucontext.patch to fix Tumbleweed build
- do not enable XINPUT2 for now (boo#1053959)

- update to Firefox 55.0.1
  * Fix a regression the tab restoration process (bmo#1388160)
  * Fix a problem causing What's new pages not to be displayed (bmo#1386224)
  * Fix a rendering issue with some PKCS#11 libraries (bmo#1388370)
  * Disable the predictor prefetch (bmo#1388160)

- update to Firefox 55.0 (boo#1052829)
  * Browsing sessions with a high number of tabs are now restored
    in an instant
  * Sidebar (bookmarks, history, synced tabs) can now be moved to
    the right edge of the window
  * Fine-tune your browser performance from the Preferences/Options page.
  * Make screenshots of webpages, and save them locally or upload
    them to the cloud. This feature will undergo A/B testing and
    will not be visible for some users.
  * Added Belarusian (be) locale
  * Simplify print jobs from within print preview
  * Use virtual reality devices with the web with the introduction
    of WebVR
  * Search suggestions are now enabled by default for users who
    haven't explicitly opted-out
  * Search with any installed search engine directly from the

OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=601
This commit is contained in:
Wolfgang Rosenauer 2017-09-05 10:10:37 +00:00 committed by Git OBS Bridge
parent 918a117cc5
commit f786a71dcd
19 changed files with 797 additions and 721 deletions

View File

@ -1,19 +1,66 @@
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Aug 9 09:47:39 UTC 2017 - schwab@suse.de Mon Sep 4 18:27:44 UTC 2017 - wr@rosenauer.org
- mozilla-ucontext.patch: use ucontext_t instead of struct ucontext - update to Firefox 55.0.3
* Fix an issue with addons when using a path containing non-ascii
characters (bmo#1389160)
* Fix file uploads to some websites, including YouTube (bmo#1383518)
- fix Google API key build integration
- add mozilla-ucontext.patch to fix Tumbleweed build
- do not enable XINPUT2 for now (boo#1053959)
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 8 18:13:34 UTC 2017 - wr@rosenauer.org Fri Aug 11 08:32:30 UTC 2017 - wr@rosenauer.org
- update to Firefox 52.3esr (boo#1052829) - update to Firefox 55.0.1
MFSA 2017-19 * Fix a regression the tab restoration process (bmo#1388160)
* Fix a problem causing What's new pages not to be displayed (bmo#1386224)
* Fix a rendering issue with some PKCS#11 libraries (bmo#1388370)
* Disable the predictor prefetch (bmo#1388160)
-------------------------------------------------------------------
Sat Aug 5 13:22:16 UTC 2017 - wr@rosenauer.org
- update to Firefox 55.0 (boo#1052829)
* Browsing sessions with a high number of tabs are now restored
in an instant
* Sidebar (bookmarks, history, synced tabs) can now be moved to
the right edge of the window
* Fine-tune your browser performance from the Preferences/Options page.
* Make screenshots of webpages, and save them locally or upload
them to the cloud. This feature will undergo A/B testing and
will not be visible for some users.
* Added Belarusian (be) locale
* Simplify print jobs from within print preview
* Use virtual reality devices with the web with the introduction
of WebVR
* Search suggestions are now enabled by default for users who
haven't explicitly opted-out
* Search with any installed search engine directly from the
location bar
* IMPORTANT: Breaking profile changes - do not downgrade Firefox
and use a profile that has been opened with Firefox 55+.
* The Adobe Flash plugin is now click-to-activate by default and
only allowed on http:// and https:// URL schemes. This change
will be rolled out progressively and so will not be visible to
all users immediately. For more information see the Firefox
plugin roadmap
* Modernized application update UI to be less intrusive and more
aligned with the rest of the browser. Only users who have not
restarted their browser 8 days after downloading an update or
users who opted out of automatic updates will see this change.
* Insecure sites can no longer access the Geolocation APIs to get
access to your physical location
* requires NSPR 4.15 and NSS 3.31
MFSA 2017-18
* CVE-2017-7798 (bmo#1371586, bmo#1372112) * CVE-2017-7798 (bmo#1371586, bmo#1372112)
XUL injection in the style editor in devtools XUL injection in the style editor in devtools
* CVE-2017-7800 (bmo#1374047) * CVE-2017-7800 (bmo#1374047)
Use-after-free in WebSockets during disconnection Use-after-free in WebSockets during disconnection
* CVE-2017-7801 (bmo#1371259) * CVE-2017-7801 (bmo#1371259)
Use-after-free with marquee during window resizing Use-after-free with marquee during window resizing
* CVE-2017-7809 (bmo#1380284)
Use-after-free while deleting attached editor DOM node
* CVE-2017-7784 (bmo#1376087) * CVE-2017-7784 (bmo#1376087)
Use-after-free with image observers Use-after-free with image observers
* CVE-2017-7802 (bmo#1378147) * CVE-2017-7802 (bmo#1378147)
@ -22,6 +69,8 @@ Tue Aug 8 18:13:34 UTC 2017 - wr@rosenauer.org
Buffer overflow manipulating ARIA attributes in DOM Buffer overflow manipulating ARIA attributes in DOM
* CVE-2017-7786 (bmo#1365189) * CVE-2017-7786 (bmo#1365189)
Buffer overflow while painting non-displayable SVG Buffer overflow while painting non-displayable SVG
* CVE-2017-7806 (bmo#1378113)
Use-after-free in layer manager with SVG
* CVE-2017-7753 (bmo#1353312) * CVE-2017-7753 (bmo#1353312)
Out-of-bounds read with cached style data and pseudo-elements# Out-of-bounds read with cached style data and pseudo-elements#
* CVE-2017-7787 (bmo#1322896) * CVE-2017-7787 (bmo#1322896)
@ -34,88 +83,75 @@ Tue Aug 8 18:13:34 UTC 2017 - wr@rosenauer.org
Memory protection bypass through WindowsDllDetourPatcher Memory protection bypass through WindowsDllDetourPatcher
* CVE-2017-7791 (bmo#1365875) * CVE-2017-7791 (bmo#1365875)
Spoofing following page navigation with data: protocol and modal alerts Spoofing following page navigation with data: protocol and modal alerts
* CVE-2017-7808 (bmo#1367531)
CSP information leak with frame-ancestors containing paths
* CVE-2017-7782 (bmo#1344034) * CVE-2017-7782 (bmo#1344034)
WindowsDllDetourPatcher allocates memory without DEP protections WindowsDllDetourPatcher allocates memory without DEP protections
* CVE-2017-7781 (bmo#1352039)
Elliptic curve point addition error when using mixed Jacobian-affine coordinates
* CVE-2017-7794 (bmo#1374281)
Linux file truncation via sandbox broker
* CVE-2017-7803 (bmo#1377426) * CVE-2017-7803 (bmo#1377426)
CSP containing 'sandbox' improperly applied CSP containing 'sandbox' improperly applied
* CVE-2017-7799 (bmo#1372509)
Self-XSS XUL injection in about:webrtc
* CVE-2017-7783 (bmo#1360842)
DOS attack through long username in URL
* CVE-2017-7788 (bmo#1073952)
Sandboxed about:srcdoc iframes do not inherit CSP directives
* CVE-2017-7789 (bmo#1074642)
Failure to enable HSTS when two STS headers are sent for a connection
* CVE-2017-7790 (bmo#1350460) (Windows-only)
Windows crash reporter reads extra memory for some non-null-terminated registry values
* CVE-2017-7796 (bmo#1234401) (Windows-only)
Windows updater can delete any file named update.log
* CVE-2017-7797 (bmo#1334776)
Response header name interning leaks across origins
* CVE-2017-7780
Memory safety bugs fixed in Firefox 55
* CVE-2017-7779 * CVE-2017-7779
Memory safety bugs fixed in Firefox 55 and Firefox ESR 52.3 Memory safety bugs fixed in Firefox 55 and Firefox ESR 52.3
- updated mozilla-kde.patch:
* removed "downloadfinished" alert as Firefox reimplemented the
whole thing (TODO: check if there is another function we should
hook in)
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Jul 5 07:26:32 UTC 2017 - astieger@suse.com Tue Jul 4 20:08:47 UTC 2017 - wr@rosenauer.org
- Mozilla Firefox 52.2.1esr: - update to Firefox 54.0.1
* Printing text does not work on Windows when Direct2D is * Fix a display issue of tab title (bmo#1357656)
disabled (bmo#1318845) * Fix a display issue of opening new tab (bmo#1371995)
* Fix a display issue when opening multiple tabs (bmo#1371962)
* Fix a tab display issue when downloading files (bmo#1373109)
* Fix a PDF printing issue (bmo#1366744)
* Fix a Netflix issue on Linux (bmo#1375708)
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Jun 14 07:08:29 UTC 2017 - wr@rosenauer.org Thu Jun 15 13:56:05 UTC 2017 - wr@rosenauer.org
- update to Firefox 52.2esr (boo#1043960) - update to Firefox 54.0
MFSA 2017-16 * Clearer and more detailed information for download items in the
* CVE-2017-5472 (bmo#1365602) download panel
Use-after-free using destroyed node when regenerating trees * Added Burmese (my) locale
* CVE-2017-7749 (bmo#1355039) * Bookmarks created on mobile devices are now shown in
Use-after-free during docshell reloading "Mobile Bookmarks” folder in the drop down list from the toolbar
* CVE-2017-7750 (bmo#1356558) and Bookmarks option in the menu bar in Desktop Firefox
Use-after-free with track elements * added support for multiple content processes (e10s-multi)
* CVE-2017-7751 (bmo#1363396) - requires NSPR 4.14 and NSS 3.30.2
Use-after-free with content viewer listeners - requires rust 1.15.1
* CVE-2017-7752 (bmo#1359547) - removed mozilla-shared-nss-db.patch as it seems to be a rather
Use-after-free with IME input unused feature
* CVE-2017-7754 (bmo#1357090)
Out-of-bounds read in WebGL with ImageInfo object
* CVE-2017-7755 (bmo#1361326)
Privilege escalation through Firefox Installer with same
directory DLL files (Windows only)
* CVE-2017-7756 (bmo#1366595)
Use-after-free and use-after-scope logging XHR header errors
* CVE-2017-7757 (bmo#1356824)
Use-after-free in IndexedDB
* CVE-2017-7778, CVE-2017-7778, CVE-2017-7771, CVE-2017-7772,
CVE-2017-7773, CVE-2017-7774, CVE-2017-7775, CVE-2017-7776,
CVE-2017-7777
Vulnerabilities in the Graphite 2 library
* CVE-2017-7758 (bmo#1368490)
Out-of-bounds read in Opus encoder
* CVE-2017-7760 (bmo#1348645)
File manipulation and privilege escalation via callback parameter
in Mozilla Windows Updater and Maintenance Service (Windows only)
* CVE-2017-7761 (bmo#1215648)
File deletion and privilege escalation through Mozilla Maintenance
Service helper.exe application (Windows only)
* CVE-2017-7764 (bmo#1364283)
Domain spoofing with combination of Canadian Syllabics and other
unicode blocks
* CVE-2017-7765 (bmo#1273265)
Mark of the Web bypass when saving executable files (Windows only)
* CVE-2017-7766 (bmo#1342742)
File execution and privilege escalation through updater.ini,
Mozilla Windows Updater, and Mozilla Maintenance Service
(Windows only)
* CVE-2017-7767 (bmo#1336964)
Privilege escalation and arbitrary file overwrites through Mozilla
Windows Updater and Mozilla Maintenance Service (Windows only)
* CVE-2017-7768 (bmo#1336979)
32 byte arbitrary file read through Mozilla Maintenance Service
(Windows only)
* CVE-2017-5470
Memory safety bugs fixed in Firefox 54 and Firefox ESR 52.2
- requires NSS 3.28.5
------------------------------------------------------------------- -------------------------------------------------------------------
Tue May 23 14:00:40 UTC 2017 - wr@rosenauer.org Thu Jun 1 04:25:05 UTC 2017 - kah0922@gmail.com
- remove -fno-inline-small-functions and explicitely optimize with - remove -fno-inline-small-functions and explicitely optimize with
-O2 for openSUSE > 13.2/Leap 42 to work with gcc7 (boo#1040105) -O2 for openSUSE > 13.2/Leap 42 to work with gcc7 (boo#1040105)
------------------------------------------------------------------- -------------------------------------------------------------------
Mon May 8 08:28:17 UTC 2017 - wr@rosenauer.org Wed Apr 26 12:37:38 UTC 2017 - wr@rosenauer.org
- update to Firefox 52.1.1
MFSA 2017-14
* CVE-2017-5031: Use after free in ANGLE (bmo#1328762)
(Windows only, Linux not affected)
- switch to Mozilla's geolocation service (boo#1026989) - switch to Mozilla's geolocation service (boo#1026989)
- removed mozilla-preferences.patch obsoleted by overriding via - removed mozilla-preferences.patch obsoleted by overriding via
firefox.js firefox.js
@ -123,10 +159,27 @@ Mon May 8 08:28:17 UTC 2017 - wr@rosenauer.org
(boo#1015998) (boo#1015998)
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Apr 12 21:43:16 UTC 2017 - wr@rosenauer.org Mon Apr 17 12:52:10 UTC 2017 - wr@rosenauer.org
- update to Firefox 52.1.0esr (boo#1035082) - update to Firefox 53.0
MFSA 2017-12 * requires NSS 3.29.5
* Lightweight themes are now applied in private browsing windows
* Reader Mode now displays estimated reading time for the page
* Two new 'compact' themes available in Firefox, dark and light,
based on the Firefox Developer Edition theme
* Ended Firefox Linux support for processors older than Pentium 4
and AMD Opteron
* Refresh of the media controls user interface
* Shortened titles on tabs are faded out instead of using ellipsis
for improved readability
* Media playback on new tabs is blocked until the tab is visible
* Permission notifications have a cleaner design and cannot be
easily missed
MFSA 2017-10
* CVE-2017-5456 (bmo#1344415)
Sandbox escape allowing local file system access
* CVE-2017-5442 (bmo#1347979)
Use-after-free during style changes
* CVE-2017-5443 (bmo#1342661) * CVE-2017-5443 (bmo#1342661)
Out-of-bounds write during BinHex decoding Out-of-bounds write during BinHex decoding
* CVE-2017-5429 (bmo#1341096, bmo#1342823, bmo#1343261, bmo#1348894, * CVE-2017-5429 (bmo#1341096, bmo#1342823, bmo#1343261, bmo#1348894,
@ -158,8 +211,8 @@ Wed Apr 12 21:43:16 UTC 2017 - wr@rosenauer.org
* CVE-2017-5445 (bmo#1344467) * CVE-2017-5445 (bmo#1344467)
Uninitialized values used while parsing application/http-index-format Uninitialized values used while parsing application/http-index-format
content content
* CVE-2017-5442 (bmo#1347979) * CVE-2017-5468 (bmo#1329521)
Use-after-free during style changes Incorrect ownership model for Private Browsing information
* CVE-2017-5469 (bmo#1292534) * CVE-2017-5469 (bmo#1292534)
Potential Buffer overflow in flex-generated code Potential Buffer overflow in flex-generated code
* CVE-2017-5440 (bmo#1336832) * CVE-2017-5440 (bmo#1336832)
@ -183,36 +236,33 @@ Wed Apr 12 21:43:16 UTC 2017 - wr@rosenauer.org
* CVE-2017-5432 (bmo#1346654) * CVE-2017-5432 (bmo#1346654)
Use-after-free in text input selection Use-after-free in text input selection
* CVE-2017-5430 (bmo#1329796, bmo#1337418, bmo#1339722, bmo#1340482, * CVE-2017-5430 (bmo#1329796, bmo#1337418, bmo#1339722, bmo#1340482,
bmo#1342101, bmo#1344081, bmo#1344305, bmo#1344686, bmo#1346140, bmo#1342101, bmo#1344081, bmo#1344305, bmo#1344686,
bmo#1346419, bmo#1348143, bmo#1349621, bmo#1349719, bmo#1353476) bmo#1346140, bmo#1346419, bmo#1348143, bmo#1349621,
bmo#1349719, bmo#1353476)
Memory safety bugs fixed in Firefox 53 and Firefox ESR 52.1 Memory safety bugs fixed in Firefox 53 and Firefox ESR 52.1
* CVE-2017-5459 (bmo#1333858) * CVE-2017-5459 (bmo#1333858)
Buffer overflow in WebGL Buffer overflow in WebGL
* CVE-2017-5462 (bmo#1345089) * CVE-2017-5458 (bmo#1229426)
DRBG flaw in NSS Drag and drop of javascript: URLs can allow for self-XSS
* CVE-2017-5455 (bmo#1341191) * CVE-2017-5455 (bmo#1341191)
Sandbox escape through internal feed reader APIs Sandbox escape through internal feed reader APIs
* CVE-2017-5454 (bmo#1349276) * CVE-2017-5454 (bmo#1349276)
Sandbox escape allowing file system read access through file Sandbox escape allowing file system read access through file picker
picker
* CVE-2017-5456 (bmo#1344415)
Sandbox escape allowing local file system access
* CVE-2017-5451 (bmo#1273537) * CVE-2017-5451 (bmo#1273537)
Addressbar spoofing with onblur event Addressbar spoofing with onblur event
- requires NSS 3.28.4 * CVE-2017-5453 (bmo#1321247)
- rebased patches HTML injection into RSS Reader feed preview page through
TITLE element
* CVE-2017-5462 (bmo#1345089)
DRBG flaw in NSS
- removed browser(npapi) provides as these plugins are deprecated
- switch used compiler to gcc5 (FF requires gcc >= 4.9 now) for
Leap 42
- Gtk2 is not longer an option; switched to Gtk3
- apply MOZ_USE_XINPUT2=1 for better touchpad and touchscreen support
(boo#1032003)
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Apr 3 06:28:34 UTC 2017 - wr@rosenauer.org
- switch package to use ESR52 branch
* enables plugin support by default
* service workers are disabled by default
* push notifications are disabled by default
* WebAssembly (wasm) is disabled
* Less use of multiprocess architecture Electrolysis (e10s)
+-------------------------------------------------------------------
Mon Apr 3 06:16:26 UTC 2017 - wr@rosenauer.org Mon Apr 3 06:16:26 UTC 2017 - wr@rosenauer.org
- update to Firefox 52.0.2 - update to Firefox 52.0.2

View File

@ -18,31 +18,26 @@
# changed with every update # changed with every update
%define major 52 %define major 55
%define mainver %major.3.0 %define mainver %major.0.3
%define update_channel esr52 %define update_channel release
%define releasedate 20170807000000 %define branding 1
%define releasedate 20170824000000
# PIE, full relro (x86_64 for now) # PIE, full relro (x86_64 for now)
%define build_hardened 1 %define build_hardened 1
%if 0%{?suse_version} > 1320 # Firefox only supports i686
%define firefox_use_gtk3 1 %ifarch %ix86
%ifarch %ix86 x86_64 ExclusiveArch: i586 i686
%define firefox_use_rust 0 BuildArch: i686
%endif %{expand:%%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic}
%endif %endif
# general build definitions # general build definitions
%if "%{update_channel}" != "aurora"
%define progname firefox %define progname firefox
%define pkgname MozillaFirefox %define pkgname MozillaFirefox
%define appname Firefox %define appname Firefox
%else
%define progname firefox-dev
%define pkgname firefox-dev-edition
%define appname Firefox Developer Edition
%endif
%define progdir %{_prefix}/%_lib/%{progname} %define progdir %{_prefix}/%_lib/%{progname}
%define gnome_dir %{_prefix} %define gnome_dir %{_prefix}
%define desktop_file_name %{progname} %define desktop_file_name %{progname}
@ -51,15 +46,6 @@
%define __find_requires sh %{SOURCE4} %define __find_requires sh %{SOURCE4}
%global provfind sh -c "grep -v '.so' | %__find_provides" %global provfind sh -c "grep -v '.so' | %__find_provides"
%global __find_provides %provfind %global __find_provides %provfind
# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys
# Note: these are for the openSUSE Firefox builds ONLY. For your own distribution,
# please get your own set of keys.
%define _google_api_key AIzaSyD1hTe85_a14kr1Ks8T3Ce75rvbR1_Dx7Q
%if %update_channel == "aurora"
%define branding 0
%else
%define branding 1
%endif
%define localize 1 %define localize 1
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
%define crashreporter 1 %define crashreporter 1
@ -72,7 +58,12 @@ BuildRequires: Mesa-devel
BuildRequires: autoconf213 BuildRequires: autoconf213
BuildRequires: dbus-1-glib-devel BuildRequires: dbus-1-glib-devel
BuildRequires: fdupes BuildRequires: fdupes
%if 0%{?suse_version} <= 1320
BuildRequires: gcc5-c++
%else
BuildRequires: gcc-c++ BuildRequires: gcc-c++
%endif
BuildRequires: cargo
BuildRequires: libXcomposite-devel BuildRequires: libXcomposite-devel
BuildRequires: libcurl-devel BuildRequires: libcurl-devel
BuildRequires: libgnomeui-devel BuildRequires: libgnomeui-devel
@ -81,29 +72,23 @@ BuildRequires: libiw-devel
BuildRequires: libnotify-devel BuildRequires: libnotify-devel
BuildRequires: libproxy-devel BuildRequires: libproxy-devel
BuildRequires: makeinfo BuildRequires: makeinfo
BuildRequires: mozilla-nspr-devel >= 4.13.1 BuildRequires: mozilla-nspr-devel >= 4.15
BuildRequires: mozilla-nss-devel >= 3.28.5 BuildRequires: mozilla-nss-devel >= 3.31
BuildRequires: nss-shared-helper-devel
BuildRequires: python-devel BuildRequires: python-devel
BuildRequires: rust >= 1.15.1
BuildRequires: rust-std
BuildRequires: startup-notification-devel BuildRequires: startup-notification-devel
BuildRequires: unzip BuildRequires: unzip
BuildRequires: update-desktop-files BuildRequires: update-desktop-files
BuildRequires: xorg-x11-libXt-devel BuildRequires: xorg-x11-libXt-devel
BuildRequires: yasm BuildRequires: yasm
BuildRequires: zip BuildRequires: zip
BuildRequires: pkgconfig(libffi)
BuildRequires: pkgconfig(libpulse)
%if 0%{?firefox_use_gtk3}
BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gobject-2.0) BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(gtk+-3.0) >= 3.4.0 BuildRequires: pkgconfig(gtk+-3.0) >= 3.4.0
BuildRequires: pkgconfig(gtk+-unix-print-3.0) BuildRequires: pkgconfig(gtk+-unix-print-3.0)
%endif BuildRequires: pkgconfig(libffi)
%if 0%{?firefox_use_rust} BuildRequires: pkgconfig(libpulse)
BuildRequires: cargo
BuildRequires: rust >= 1.10
BuildRequires: rust-std
%endif
# libavcodec is required for H.264 support but the # libavcodec is required for H.264 support but the
# openSUSE version is currently not able to play H.264 # openSUSE version is currently not able to play H.264
# therefore the Packman version is required # therefore the Packman version is required
@ -116,11 +101,8 @@ Provides: firefox = %{mainver}
Provides: firefox = %{version}-%{release} Provides: firefox = %{version}-%{release}
%endif %endif
Provides: web_browser Provides: web_browser
Provides: browser(npapi)
%if "%{update_channel}" != "aurora"
Provides: appdata() Provides: appdata()
Provides: appdata(firefox.appdata.xml) Provides: appdata(firefox.appdata.xml)
%endif
# this is needed to match this package with the kde4 helper package without the main package # this is needed to match this package with the kde4 helper package without the main package
# having a hard requirement on the kde4 package # having a hard requirement on the kde4 package
%define kde_helper_version 6 %define kde_helper_version 6
@ -147,10 +129,13 @@ Source14: create-tar.sh
Source15: firefox-appdata.xml Source15: firefox-appdata.xml
Source16: MozillaFirefox.changes Source16: MozillaFirefox.changes
Source17: l10n_changesets.txt Source17: l10n_changesets.txt
# Set up API keys, see http://www.chromium.org/developers/how-tos/api-keys
# Note: these are for the openSUSE Firefox builds ONLY. For your own distribution,
# please get your own set of keys.
Source18: mozilla-api-key Source18: mozilla-api-key
Source19: google-api-key
# Gecko/Toolkit # Gecko/Toolkit
Patch1: mozilla-nongnome-proxies.patch Patch1: mozilla-nongnome-proxies.patch
Patch2: mozilla-shared-nss-db.patch
Patch3: mozilla-kde.patch Patch3: mozilla-kde.patch
Patch5: mozilla-language.patch Patch5: mozilla-language.patch
Patch6: mozilla-ntlm-full-path.patch Patch6: mozilla-ntlm-full-path.patch
@ -180,6 +165,7 @@ Obsoletes: tracker-miner-firefox < 0.15
%if 0%{?suse_version} < 1220 %if 0%{?suse_version} < 1220
Obsoletes: libproxy1-pacrunner-mozjs <= 0.4.7 Obsoletes: libproxy1-pacrunner-mozjs <= 0.4.7
%endif %endif
##BuildArch: i686 x86_64 aarch64 ppc64le
%description %description
Mozilla Firefox is a standalone web browser, designed for standards Mozilla Firefox is a standalone web browser, designed for standards
@ -260,13 +246,14 @@ symbols meant for upload to Mozilla's crash collector database.
%endif %endif
cd $RPM_BUILD_DIR/mozilla cd $RPM_BUILD_DIR/mozilla
%patch1 -p1 %patch1 -p1
%patch2 -p1
%patch3 -p1 %patch3 -p1
%patch5 -p1 %patch5 -p1
%patch6 -p1 %patch6 -p1
%patch7 -p1 %patch7 -p1
%patch8 -p1 %patch8 -p1
%ifarch %ix86
%patch9 -p1 %patch9 -p1
%endif
%patch10 -p1 %patch10 -p1
%patch11 -p1 %patch11 -p1
# Firefox # Firefox
@ -295,7 +282,9 @@ export MOZ_BUILD_DATE=%{releasedate}
export MOZILLA_OFFICIAL=1 export MOZILLA_OFFICIAL=1
export BUILD_OFFICIAL=1 export BUILD_OFFICIAL=1
export MOZ_TELEMETRY_REPORTING=1 export MOZ_TELEMETRY_REPORTING=1
export MOZ_GOOGLE_API_KEY=%{_google_api_key} %if 0%{?suse_version} <= 1320
export CC=gcc-5
%endif
export CFLAGS="%{optflags} -fno-strict-aliasing" export CFLAGS="%{optflags} -fno-strict-aliasing"
# boo#986541: add -fno-delete-null-pointer-checks for gcc6 # boo#986541: add -fno-delete-null-pointer-checks for gcc6
%if 0%{?suse_version} > 1320 %if 0%{?suse_version} > 1320
@ -328,14 +317,7 @@ ac_add_options --prefix=%{_prefix}
ac_add_options --libdir=%{_libdir} ac_add_options --libdir=%{_libdir}
ac_add_options --includedir=%{_includedir} ac_add_options --includedir=%{_includedir}
ac_add_options --enable-release ac_add_options --enable-release
%if 0%{?firefox_use_rust}
ac_add_options --enable-rust
%endif
%if 0%{?firefox_use_gtk3}
ac_add_options --enable-default-toolkit=cairo-gtk3 ac_add_options --enable-default-toolkit=cairo-gtk3
%else
ac_add_options --enable-default-toolkit=cairo-gtk2
%endif
%if 0%{?build_hardened} %if 0%{?build_hardened}
ac_add_options --enable-pie ac_add_options --enable-pie
%endif %endif
@ -367,6 +349,7 @@ ac_add_options --enable-startup-notification
#ac_add_options --enable-chrome-format=jar #ac_add_options --enable-chrome-format=jar
ac_add_options --enable-update-channel=%{update_channel} ac_add_options --enable-update-channel=%{update_channel}
ac_add_options --with-mozilla-api-keyfile=%{SOURCE18} ac_add_options --with-mozilla-api-keyfile=%{SOURCE18}
ac_add_options --with-google-api-keyfile=%{SOURCE19}
%if %branding %if %branding
ac_add_options --enable-official-branding ac_add_options --enable-official-branding
%endif %endif
@ -471,10 +454,8 @@ s:%%ICON:%{progname}:g" \
mkdir -p %{buildroot}%{_datadir}/mime/packages mkdir -p %{buildroot}%{_datadir}/mime/packages
cp %{SOURCE8} %{buildroot}%{_datadir}/mime/packages/%{progname}.xml cp %{SOURCE8} %{buildroot}%{_datadir}/mime/packages/%{progname}.xml
# appdata # appdata
%if "%{update_channel}" != "aurora"
mkdir -p %{buildroot}%{_datadir}/appdata mkdir -p %{buildroot}%{_datadir}/appdata
cp %{SOURCE15} %{buildroot}%{_datadir}/appdata/%{desktop_file_name}.appdata.xml cp %{SOURCE15} %{buildroot}%{_datadir}/appdata/%{desktop_file_name}.appdata.xml
%endif
# install man-page # install man-page
mkdir -p %{buildroot}%{_mandir}/man1/ mkdir -p %{buildroot}%{_mandir}/man1/
cp %{SOURCE11} %{buildroot}%{_mandir}/man1/%{progname}.1 cp %{SOURCE11} %{buildroot}%{_mandir}/man1/%{progname}.1
@ -585,10 +566,8 @@ exit 0
%{progdir}/distribution/extensions/ %{progdir}/distribution/extensions/
%{progdir}/defaults/ %{progdir}/defaults/
%{progdir}/dictionaries/ %{progdir}/dictionaries/
%if 0%{?firefox_use_gtk3}
%dir %{progdir}/gtk2 %dir %{progdir}/gtk2
%{progdir}/gtk2/libmozgtk.so %{progdir}/gtk2/libmozgtk.so
%endif
%{progdir}/gmp-clearkey/ %{progdir}/gmp-clearkey/
%attr(755,root,root) %{progdir}/%{progname}.sh %attr(755,root,root) %{progdir}/%{progname}.sh
%{progdir}/firefox %{progdir}/firefox
@ -600,6 +579,7 @@ exit 0
%{progdir}/*.so %{progdir}/*.so
%{progdir}/omni.ja %{progdir}/omni.ja
%{progdir}/fonts/ %{progdir}/fonts/
%{progdir}/pingsender
%{progdir}/platform.ini %{progdir}/platform.ini
%{progdir}/plugin-container %{progdir}/plugin-container
%if %crashreporter %if %crashreporter
@ -621,9 +601,7 @@ exit 0
%{gnome_dir}/share/icons/hicolor/ %{gnome_dir}/share/icons/hicolor/
%{_bindir}/%{progname} %{_bindir}/%{progname}
%doc %{_mandir}/man1/%{progname}.1.gz %doc %{_mandir}/man1/%{progname}.1.gz
%if "%{update_channel}" != "aurora"
%{_datadir}/appdata/ %{_datadir}/appdata/
%endif
%files devel %files devel
%defattr(-,root,root) %defattr(-,root,root)

View File

@ -2,10 +2,10 @@
<constraints> <constraints>
<hardware> <hardware>
<disk> <disk>
<size unit="G">13</size> <size unit="G">18</size>
</disk> </disk>
<memory> <memory>
<size unit="M">6000</size> <size unit="M">7000</size>
</memory> </memory>
</hardware> </hardware>
<overwrite> <overwrite>

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:0c012241138a66dea1995518f245898791d94cb31d11b2472c889dbe464418bb oid sha256:8ab1d8d34c78ec2a2acae648582d499c8d2c80b496c6e33016c51acf1dfb25e3
size 28392 size 28364

View File

@ -5,10 +5,10 @@
# "moz_source_stamp": "c1de04f39fa956cfce83f6065b0e709369215ed5" # "moz_source_stamp": "c1de04f39fa956cfce83f6065b0e709369215ed5"
# http://ftp.mozilla.org/pub/firefox/candidates/48.0-candidates/build2/l10n_changesets.txt # http://ftp.mozilla.org/pub/firefox/candidates/48.0-candidates/build2/l10n_changesets.txt
CHANNEL="esr52" CHANNEL="release"
BRANCH="releases/mozilla-$CHANNEL" BRANCH="releases/mozilla-$CHANNEL"
RELEASE_TAG="FIREFOX_52_3_0esr_RELEASE" RELEASE_TAG="FIREFOX_55_0_3_RELEASE" # 55.0.3 build2
VERSION="52.3.0" VERSION="55.0.3"
# mozilla # mozilla
if [ -d mozilla ]; then if [ -d mozilla ]; then
@ -62,7 +62,7 @@ for locale in $(awk '{ print $1; }' mozilla/browser/locales/shipped-locales); do
echo "reading changeset information for $locale" echo "reading changeset information for $locale"
_changeset=$(grep ^$locale l10n_changesets.txt | awk '{ print $2; }') _changeset=$(grep ^$locale l10n_changesets.txt | awk '{ print $2; }')
echo "fetching $locale changeset $_changeset ..." echo "fetching $locale changeset $_changeset ..."
hg clone http://hg.mozilla.org/releases/l10n/mozilla-release/$locale l10n/$locale hg clone http://hg.mozilla.org/releases/l10n/mozilla-$CHANNEL/$locale l10n/$locale
[ "$RELEASE_TAG" == "default" ] || hg -R l10n/$locale up -C -r $_changeset [ "$RELEASE_TAG" == "default" ] || hg -R l10n/$locale up -C -r $_changeset
;; ;;
esac esac

View File

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

View File

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

View File

@ -1,11 +1,11 @@
# HG changeset patch # HG changeset patch
# Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de # Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de
# Parent 2bffb52e07b587a6c755d67c6fc971fed6509783 # Parent 6309c3625e39216f9cf5a7a35cbf6932adfabc1d
diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild
--- a/browser/branding/branding-common.mozbuild --- a/browser/branding/branding-common.mozbuild
+++ b/browser/branding/branding-common.mozbuild +++ b/browser/branding/branding-common.mozbuild
@@ -34,18 +34,24 @@ def FirefoxBranding(): @@ -41,18 +41,24 @@ def FirefoxBranding():
'disk.icns', 'disk.icns',
'document.icns', 'document.icns',
'dsstore', 'dsstore',
@ -33,8 +33,8 @@ diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/brandi
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
--- a/browser/installer/package-manifest.in --- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in
@@ -650,18 +650,21 @@ @@ -599,18 +599,21 @@
@RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png @RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/chrome.manifest
@RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf @RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf
@RESPATH@/chrome/toolkit@JAREXT@ @RESPATH@/chrome/toolkit@JAREXT@
@RESPATH@/chrome/toolkit.manifest @RESPATH@/chrome/toolkit.manifest

View File

@ -1,11 +1,11 @@
# HG changeset patch # HG changeset patch
# Parent 1c4e33861cfcffe5a189802cf97957b0701260db # Parent 9ccba8e6b5fad738ce924ff40b4c5aa6f4bc12dd
diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/browser/base/content/browser-kde.xul +++ b/browser/base/content/browser-kde.xul
@@ -0,0 +1,1134 @@ @@ -0,0 +1,1306 @@
+#filter substitution +#filter substitution
+<?xml version="1.0"?> +<?xml version="1.0"?>
+# -*- Mode: HTML -*- +# -*- Mode: HTML -*-
@ -17,11 +17,9 @@ new file mode 100644
+<?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?> +<?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?>
+<?xml-stylesheet href="chrome://browser/content/places/places.css" type="text/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/content/usercontext/usercontext.css" type="text/css"?>
+<?xml-stylesheet href="chrome://devtools/skin/devtools-browser.css" type="text/css"?>
+<?xml-stylesheet href="chrome://browser/skin/controlcenter/panel.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/customizableui/panelUI.css" type="text/css"?>
+<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?> +<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
+<?xml-stylesheet href="chrome://browser/skin/browser-lightweightTheme.css" type="text/css"?>
+ +
+<?xul-overlay href="chrome://global/content/editMenuOverlay.xul"?> +<?xul-overlay href="chrome://global/content/editMenuOverlay.xul"?>
+<?xul-overlay href="chrome://browser/content/baseMenuOverlay.xul"?> +<?xul-overlay href="chrome://browser/content/baseMenuOverlay.xul"?>
@ -35,6 +33,7 @@ new file mode 100644
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:html="http://www.w3.org/1999/xhtml" + xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ onload="gBrowserInit.onLoad()" onunload="gBrowserInit.onUnload()" onclose="return WindowIsClosing();" + onload="gBrowserInit.onLoad()" onunload="gBrowserInit.onUnload()" onclose="return WindowIsClosing();"
+ title="&mainWindow.title;" + title="&mainWindow.title;"
@ -61,7 +60,6 @@ new file mode 100644
+#endif +#endif
+ titlemenuseparator="&mainWindow.titlemodifiermenuseparator;" + titlemenuseparator="&mainWindow.titlemodifiermenuseparator;"
+ lightweightthemes="true" + lightweightthemes="true"
+ lightweightthemesfooter="browser-bottombox"
+ windowtype="navigator:browser" + windowtype="navigator:browser"
+ macanimationtype="document" + macanimationtype="document"
+ screenX="4" screenY="4" + screenX="4" screenY="4"
@ -116,7 +114,7 @@ new file mode 100644
+ <menu id="context_sendTabToDevice" label="&sendTabToDevice.label;" + <menu id="context_sendTabToDevice" label="&sendTabToDevice.label;"
+ accesskey="&sendTabToDevice.accesskey;" hidden="true"> + accesskey="&sendTabToDevice.accesskey;" hidden="true">
+ <menupopup id="context_sendTabToDevicePopupMenu" + <menupopup id="context_sendTabToDevicePopupMenu"
+ onpopupshowing="gFxAccounts.populateSendTabToDevicesMenu(event.target, TabContextMenu.contextTab.linkedBrowser.currentURI.spec, TabContextMenu.contextTab.linkedBrowser.contentTitle);"/> + onpopupshowing="gSync.populateSendTabToDevicesMenu(event.target, TabContextMenu.contextTab.linkedBrowser.currentURI.spec, TabContextMenu.contextTab.linkedBrowser.contentTitle);"/>
+ </menu> + </menu>
+ <menuseparator/> + <menuseparator/>
+ <menuitem id="context_reloadAllTabs" label="&reloadAllTabs.label;" accesskey="&reloadAllTabs.accesskey;" + <menuitem id="context_reloadAllTabs" label="&reloadAllTabs.label;" accesskey="&reloadAllTabs.accesskey;"
@ -155,7 +153,8 @@ new file mode 100644
+ noautofocus="true" + noautofocus="true"
+ hidden="true" + hidden="true"
+ overflowpadding="4" + overflowpadding="4"
+ norolluponanchor="true" /> + norolluponanchor="true"
+ nomaxresults="true" />
+ +
+ <!-- for search with one-off buttons --> + <!-- for search with one-off buttons -->
+ <panel type="autocomplete" id="PopupSearchAutoComplete" noautofocus="true" hidden="true"/> + <panel type="autocomplete" id="PopupSearchAutoComplete" noautofocus="true" hidden="true"/>
@ -174,9 +173,10 @@ new file mode 100644
+ hidden="true" + hidden="true"
+ orient="vertical" + orient="vertical"
+ noautofocus="true" + noautofocus="true"
+ noautohide="true"
+ consumeoutsideclicks="false" + consumeoutsideclicks="false"
+ level="parent"> + level="parent"
+ <iframe id="dateTimePopupFrame"/> + tabspecific="true">
+ </panel> + </panel>
+ +
+ <!-- for select dropdowns. The menupopup is what shows the list of options, + <!-- for select dropdowns. The menupopup is what shows the list of options,
@ -186,6 +186,7 @@ new file mode 100644
+ <menulist popuponly="true" id="ContentSelectDropdown" hidden="true"> + <menulist popuponly="true" id="ContentSelectDropdown" hidden="true">
+ <menupopup rolluponmousewheel="true" + <menupopup rolluponmousewheel="true"
+ activateontab="true" position="after_start" + activateontab="true" position="after_start"
+ level="parent"
+#ifdef XP_WIN +#ifdef XP_WIN
+ consumeoutsideclicks="false" ignorekeys="shortcuts" + consumeoutsideclicks="false" ignorekeys="shortcuts"
+#endif +#endif
@ -296,10 +297,53 @@ new file mode 100644
+ </hbox> + </hbox>
+ <hbox id="share-container" flex="1"/> + <hbox id="share-container" flex="1"/>
+ </panel> + </panel>
+ <panel id="sidebarMenu-popup"
+ class="cui-widget-panel"
+ role="group"
+ type="arrow"
+ hidden="true"
+ flip="slide"
+ orient="vertical"
+ position="bottomcenter topleft">
+ <toolbarbutton id="sidebar-switcher-bookmarks"
+ class="subviewbutton subviewbutton-iconic"
+ key="viewBookmarksSidebarKb"
+ observes="viewBookmarksSidebar"
+ oncommand="SidebarUI.show('viewBookmarksSidebar');">
+ <observes element="viewBookmarksSidebar" attribute="checked"/>
+ </toolbarbutton>
+ <toolbarbutton id="sidebar-switcher-history"
+ label="&historyButton.label;"
+ class="subviewbutton subviewbutton-iconic"
+ key="key_gotoHistory"
+ observes="viewHistorySidebar"
+ oncommand="SidebarUI.show('viewHistorySidebar');">
+ <observes element="viewHistorySidebar" attribute="checked"/>
+ </toolbarbutton>
+ <toolbarbutton id="sidebar-switcher-tabs"
+ label="&syncedTabs.sidebar.label;"
+ class="subviewbutton subviewbutton-iconic"
+ observes="viewTabsSidebar"
+ oncommand="SidebarUI.show('viewTabsSidebar');">
+ <observes element="viewTabsSidebar" attribute="checked"/>
+ </toolbarbutton>
+ <toolbarseparator/>
+ <vbox id="sidebar-extensions"></vbox>
+ <toolbarseparator/>
+ <toolbarbutton id="sidebar-reverse-position"
+ class="subviewbutton"
+ oncommand="SidebarUI.reversePosition()"/>
+ <toolbarseparator/>
+ <toolbarbutton label="&sidebarMenuClose.label;"
+ class="subviewbutton"
+ oncommand="SidebarUI.hide()"/>
+ </panel>
+ +
+ <menupopup id="toolbar-context-menu" + <menupopup id="toolbar-context-menu"
+ onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('viewToolbarsMenuSeparator'));"> + onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('viewToolbarsMenuSeparator'));">
+ <menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)" + <menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)"
+ photonaccesskey="&customizeMenu.pinToOverflowMenu.accesskey;"
+ photonlabel="&customizeMenu.pinToOverflowMenu.label;"
+ accesskey="&customizeMenu.moveToPanel.accesskey;" + accesskey="&customizeMenu.moveToPanel.accesskey;"
+ label="&customizeMenu.moveToPanel.label;" + label="&customizeMenu.moveToPanel.label;"
+ contexttype="toolbaritem" + contexttype="toolbaritem"
@ -411,6 +455,58 @@ new file mode 100644
+ </hbox> + </hbox>
+ </panel> + </panel>
+ +
+ <panel id="page-action-panel"
+ class="cui-widget-panel"
+ role="group"
+ type="arrow"
+ hidden="true"
+ flip="slide"
+ position="bottomcenter topright"
+ noautofocus="true">
+ <photonpanelmultiview id="page-action-multiView"
+ mainViewId="page-action-mainView">
+ <panelview id="page-action-mainView"
+ class="PanelUI-subView">
+ <vbox class="panel-subview-body">
+ <toolbarbutton id="page-action-bookmark-button"
+ class="subviewbutton subviewbutton-iconic"
+ observes="bookmarkThisPageBroadcaster"
+ command="Browser:AddBookmarkAs"
+ onclick="gPageActionButton.panel.hidePopup();"/>
+ <toolbarseparator/>
+ <toolbarbutton id="page-action-copy-url-button"
+ class="subviewbutton subviewbutton-iconic"
+ label="&copyURLCmd.label;"
+ command="PageAction:copyURL"/>
+ <toolbarbutton id="page-action-email-link-button"
+ class="subviewbutton subviewbutton-iconic"
+ label="&emailPageCmd.label;"
+ command="PageAction:emailLink"/>
+ <toolbarbutton id="page-action-send-to-device-button"
+ class="subviewbutton subviewbutton-iconic subviewbutton-nav"
+ label="&sendToDevice.label;"
+ closemenu="none"
+ oncommand="gPageActionButton.showSendToDeviceView(this);"/>
+ </vbox>
+ </panelview>
+ <panelview id="page-action-sendToDeviceView"
+ class="PanelUI-subView"
+ title="&sendToDevice.viewTitle;">
+ <vbox id="page-action-sendToDeviceView-body" class="panel-subview-body">
+ <toolbarbutton id="page-action-sendToDevice-fxa-button"
+ class="subviewbutton subviewbutton-iconic"
+ label="&syncBrand.fxAccount.label;"
+ shortcut="&sendToDevice.fxaRequired.label;"
+ oncommand="gPageActionButton.fxaButtonClicked();"/>
+ <toolbarbutton id="page-action-no-devices-button"
+ class="subviewbutton"
+ label="&sendToDevice.noDevices.label;"
+ disabled="true"/>
+ </vbox>
+ </panelview>
+ </photonpanelmultiview>
+ </panel>
+
+ <!-- Bookmarks and history tooltip --> + <!-- Bookmarks and history tooltip -->
+ <tooltip id="bhTooltip"/> + <tooltip id="bhTooltip"/>
+ +
@ -483,6 +579,13 @@ new file mode 100644
+ accesskey="&syncedTabs.context.copy.accesskey;" + accesskey="&syncedTabs.context.copy.accesskey;"
+ id="syncedTabsCopySelected"/> + id="syncedTabsCopySelected"/>
+ <menuseparator/> + <menuseparator/>
+ <menuitem label="&syncedTabs.context.openAllInTabs.label;"
+ accesskey="&syncedTabs.context.openAllInTabs.accesskey;"
+ id="syncedTabsOpenAllInTabs"/>
+ <menuitem label="&syncedTabs.context.managedevices.label;"
+ accesskey="&syncedTabs.context.managedevices.accesskey;"
+ id="syncedTabsManageDevices"
+ oncommand="gSync.openDevicesManagementPage('syncedtabs-sidebar');"/>
+ <menuitem label="&syncSyncNowItem.label;" + <menuitem label="&syncSyncNowItem.label;"
+ accesskey="&syncSyncNowItem.accesskey;" + accesskey="&syncSyncNowItem.accesskey;"
+ id="syncedTabsRefresh"/> + id="syncedTabsRefresh"/>
@ -515,6 +618,7 @@ new file mode 100644
+ id="syncedTabsRefreshFilter"/> + id="syncedTabsRefreshFilter"/>
+ </menupopup> + </menupopup>
+ </popupset> + </popupset>
+ <box id="appMenu-viewCache" hidden="true"/>
+ +
+#ifdef CAN_DRAW_IN_TITLEBAR +#ifdef CAN_DRAW_IN_TITLEBAR
+<vbox id="titlebar"> +<vbox id="titlebar">
@ -554,10 +658,8 @@ new file mode 100644
+#ifdef MENUBAR_CAN_AUTOHIDE +#ifdef MENUBAR_CAN_AUTOHIDE
+ toolbarname="&menubarCmd.label;" + toolbarname="&menubarCmd.label;"
+ accesskey="&menubarCmd.accesskey;" + accesskey="&menubarCmd.accesskey;"
+#if defined(MOZ_WIDGET_GTK)
+ autohide="true" + autohide="true"
+#endif +#endif
+#endif
+ context="toolbar-context-menu"> + context="toolbar-context-menu">
+ <toolbaritem id="menubar-items" align="center"> + <toolbaritem id="menubar-items" align="center">
+# The entire main menubar is placed into browser-menubar.inc, so that it can be shared by +# The entire main menubar is placed into browser-menubar.inc, so that it can be shared by
@ -620,7 +722,6 @@ new file mode 100644
+ <menupopup id="alltabs-popup" + <menupopup id="alltabs-popup"
+ position="after_end"> + position="after_end">
+ <menuitem id="alltabs_undoCloseTab" + <menuitem id="alltabs_undoCloseTab"
+ class="menuitem-iconic"
+ key="key_undoCloseTab" + key="key_undoCloseTab"
+ label="&undoCloseTab.label;" + label="&undoCloseTab.label;"
+ observes="History:UndoCloseTab"/> + observes="History:UndoCloseTab"/>
@ -668,18 +769,43 @@ new file mode 100644
+ removable="false" + removable="false"
+ class="chromeclass-location" overflows="false"> + class="chromeclass-location" overflows="false">
+ <toolbarbutton id="back-button" class="toolbarbutton-1 chromeclass-toolbar-additional" + <toolbarbutton id="back-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
+ removable="false" overflows="false"
+ label="&backCmd.label;" + label="&backCmd.label;"
+ command="Browser:BackOrBackDuplicate" + command="Browser:BackOrBackDuplicate"
+ onclick="checkForMiddleClick(this, event);" + onclick="checkForMiddleClick(this, event);"
+ tooltip="back-button-tooltip" + tooltip="back-button-tooltip"
+ context="backForwardMenu"/> + context="backForwardMenu"/>
+#ifdef MOZ_PHOTON_THEME
+ <toolbarbutton id="forward-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
+ removable="false" overflows="false"
+ label="&forwardCmd.label;"
+ command="Browser:ForwardOrForwardDuplicate"
+ onclick="checkForMiddleClick(this, event);"
+ tooltip="forward-button-tooltip"
+ context="backForwardMenu"/>
+ <toolbaritem id="stop-reload-button"
+ removable="false" overflows="false"
+ class="chromeclass-toolbar-additional">
+ <toolbarbutton id="reload-button"
+ class="toolbarbutton-1"
+ command="Browser:ReloadOrDuplicate"
+ onclick="checkForMiddleClick(this, event);"
+ tooltip="dynamic-shortcut-tooltip"/>
+ <toolbarbutton id="stop-button"
+ class="toolbarbutton-1"
+ command="Browser:Stop"
+ tooltip="dynamic-shortcut-tooltip"/>
+ </toolbaritem>
+#endif
+ <hbox id="urlbar-wrapper" flex="1"> + <hbox id="urlbar-wrapper" flex="1">
+#ifndef MOZ_PHOTON_THEME
+ <toolbarbutton id="forward-button" class="toolbarbutton-1 chromeclass-toolbar-additional" + <toolbarbutton id="forward-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
+ label="&forwardCmd.label;" + label="&forwardCmd.label;"
+ command="Browser:ForwardOrForwardDuplicate" + command="Browser:ForwardOrForwardDuplicate"
+ onclick="checkForMiddleClick(this, event);" + onclick="checkForMiddleClick(this, event);"
+ tooltip="forward-button-tooltip" + tooltip="forward-button-tooltip"
+ context="backForwardMenu"/> + context="backForwardMenu"/>
+#endif
+ <textbox id="urlbar" flex="1" + <textbox id="urlbar" flex="1"
+ placeholder="&urlbar.placeholder2;" + placeholder="&urlbar.placeholder2;"
+ type="autocomplete" + type="autocomplete"
@ -709,6 +835,7 @@ new file mode 100644
+ consumeanchor="identity-box" + consumeanchor="identity-box"
+ onclick="PageProxyClickHandler(event);"/> + onclick="PageProxyClickHandler(event);"/>
+ <image id="sharing-icon" mousethrough="always"/> + <image id="sharing-icon" mousethrough="always"/>
+ <image id="tracking-protection-icon"/>
+ <box id="blocked-permissions-container" align="center"> + <box id="blocked-permissions-container" align="center">
+ <image data-permission-id="geo" class="blocked-permission-icon geo-icon" role="button" + <image data-permission-id="geo" class="blocked-permission-icon geo-icon" role="button"
+ tooltiptext="&urlbar.geolocationBlocked.tooltip;"/> + tooltiptext="&urlbar.geolocationBlocked.tooltip;"/>
@ -722,6 +849,8 @@ new file mode 100644
+ tooltiptext="&urlbar.microphoneBlocked.tooltip;"/> + tooltiptext="&urlbar.microphoneBlocked.tooltip;"/>
+ <image data-permission-id="screen" class="blocked-permission-icon screen-icon" role="button" + <image data-permission-id="screen" class="blocked-permission-icon screen-icon" role="button"
+ tooltiptext="&urlbar.screenBlocked.tooltip;"/> + tooltiptext="&urlbar.screenBlocked.tooltip;"/>
+ <image data-permission-id="persistent-storage" class="blocked-permission-icon persistent-storage-icon" role="button"
+ tooltiptext="&urlbar.persistentStorageBlocked.tooltip;"/>
+ </box> + </box>
+ <box id="notification-popup-box" + <box id="notification-popup-box"
+ hidden="true" + hidden="true"
@ -738,8 +867,11 @@ new file mode 100644
+ tooltiptext="&urlbar.indexedDBNotificationAnchor.tooltip;"/> + tooltiptext="&urlbar.indexedDBNotificationAnchor.tooltip;"/>
+ <image id="password-notification-icon" class="notification-anchor-icon login-icon" role="button" + <image id="password-notification-icon" class="notification-anchor-icon login-icon" role="button"
+ tooltiptext="&urlbar.passwordNotificationAnchor.tooltip;"/> + tooltiptext="&urlbar.passwordNotificationAnchor.tooltip;"/>
+ <image id="plugins-notification-icon" class="notification-anchor-icon plugin-icon" role="button" + <stack id="plugins-notification-icon" class="notification-anchor-icon" role="button" align="center"
+ tooltiptext="&urlbar.pluginsNotificationAnchor.tooltip;"/> + tooltiptext="&urlbar.pluginsNotificationAnchor.tooltip;">
+ <image class="plugin-icon" />
+ <image id="plugin-icon-badge" />
+ </stack>
+ <image id="web-notifications-notification-icon" class="notification-anchor-icon desktop-notification-icon" role="button" + <image id="web-notifications-notification-icon" class="notification-anchor-icon desktop-notification-icon" role="button"
+ tooltiptext="&urlbar.webNotificationAnchor.tooltip;"/> + tooltiptext="&urlbar.webNotificationAnchor.tooltip;"/>
+ <image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon camera-icon" role="button" + <image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon camera-icon" role="button"
@ -756,9 +888,13 @@ new file mode 100644
+ tooltiptext="&urlbar.translatedNotificationAnchor.tooltip;"/> + tooltiptext="&urlbar.translatedNotificationAnchor.tooltip;"/>
+ <image id="eme-notification-icon" class="notification-anchor-icon drm-icon" role="button" + <image id="eme-notification-icon" class="notification-anchor-icon drm-icon" role="button"
+ tooltiptext="&urlbar.emeNotificationAnchor.tooltip;"/> + tooltiptext="&urlbar.emeNotificationAnchor.tooltip;"/>
+ <image id="persistent-storage-notification-icon" class="notification-anchor-icon persistent-storage-icon" role="button"
+ tooltiptext="&urlbar.persistentStorageNotificationAnchor.tooltip;"/>
+ </box> + </box>
+ <image id="tracking-protection-icon"/>
+ <image id="connection-icon"/> + <image id="connection-icon"/>
+ <image id="extension-icon"/>
+ <image id="remote-control-icon"
+ tooltiptext="&urlbar.remoteControlNotificationAnchor.tooltip;"/>
+ <hbox id="identity-icon-labels"> + <hbox id="identity-icon-labels">
+ <label id="identity-icon-label" class="plain" flex="1"/> + <label id="identity-icon-label" class="plain" flex="1"/>
+ <label id="identity-icon-country-label" class="plain"/> + <label id="identity-icon-country-label" class="plain"/>
@ -780,26 +916,33 @@ new file mode 100644
+ onclick="ReaderParent.buttonClick(event);"/> + onclick="ReaderParent.buttonClick(event);"/>
+ <toolbarbutton id="urlbar-zoom-button" + <toolbarbutton id="urlbar-zoom-button"
+ onclick="FullZoom.reset();" + onclick="FullZoom.reset();"
+ tooltiptext="&urlbar.zoomReset.tooltip;" + tooltip="dynamic-shortcut-tooltip"
+ hidden="true"/> + hidden="true"/>
+ </hbox> + </hbox>
+ <hbox id="userContext-icons" hidden="true"> + <hbox id="userContext-icons" hidden="true">
+ <label id="userContext-label"/> + <label id="userContext-label"/>
+ <image id="userContext-indicator"/> + <image id="userContext-indicator"/>
+ </hbox> + </hbox>
+#ifndef MOZ_PHOTON_THEME
+ <toolbarbutton id="urlbar-go-button" + <toolbarbutton id="urlbar-go-button"
+ class="chromeclass-toolbar-additional" + class="chromeclass-toolbar-additional"
+ onclick="gURLBar.handleCommand(event);" + onclick="gURLBar.handleCommand(event);"
+ tooltiptext="&goEndCap.tooltip;"/> + tooltiptext="&goEndCap.tooltip;"/>
+ <toolbarbutton id="urlbar-reload-button" + <toolbarbutton id="reload-button"
+ class="chromeclass-toolbar-additional" + class="chromeclass-toolbar-additional"
+ command="Browser:ReloadOrDuplicate" + command="Browser:ReloadOrDuplicate"
+ onclick="checkForMiddleClick(this, event);" + onclick="checkForMiddleClick(this, event);"
+ tooltiptext="&reloadButton.tooltip;"/> + tooltip="dynamic-shortcut-tooltip"/>
+ <toolbarbutton id="urlbar-stop-button" + <toolbarbutton id="stop-button"
+ class="chromeclass-toolbar-additional" + class="chromeclass-toolbar-additional"
+ command="Browser:Stop" + command="Browser:Stop"
+ tooltiptext="&stopButton.tooltip;"/> + tooltip="dynamic-shortcut-tooltip"/>
+#else
+ <toolbarbutton id="urlbar-page-action-button"
+ class="chromeclass-toolbar-additional"
+ tooltiptext="&pageActionButton.tooltip;"
+ onclick="gPageActionButton.onEvent(event);"/>
+#endif
+ </textbox> + </textbox>
+ </hbox> + </hbox>
+ </toolbaritem> + </toolbaritem>
@ -886,6 +1029,19 @@ new file mode 100644
+ new PlacesMenu(event, 'place:folder=UNFILED_BOOKMARKS', + new PlacesMenu(event, 'place:folder=UNFILED_BOOKMARKS',
+ PlacesUIUtils.getViewForNode(this.parentNode.parentNode).options);"/> + PlacesUIUtils.getViewForNode(this.parentNode.parentNode).options);"/>
+ </menu> + </menu>
+ <menu id="BMB_mobileBookmarks"
+ class="menu-iconic bookmark-item subviewbutton"
+ label="&bookmarksMenuButton.mobile.label;"
+ hidden="true"
+ container="true">
+ <menupopup id="BMB_mobileBookmarksPopup"
+ placespopup="true"
+ context="placesContext"
+ onpopupshowing="if (!this.parentNode._placesView)
+ new PlacesMenu(event, 'place:folder=MOBILE_BOOKMARKS',
+ PlacesUIUtils.getViewForNode(this.parentNode.parentNode).options);"/>
+ </menu>
+
+ <menuseparator/> + <menuseparator/>
+ <!-- Bookmarks menu items will go here --> + <!-- Bookmarks menu items will go here -->
+ <menuitem id="BMB_bookmarksShowAll" + <menuitem id="BMB_bookmarksShowAll"
@ -1037,7 +1193,7 @@ new file mode 100644
+ +
+ <toolbarbutton id="new-window-button" class="toolbarbutton-1 chromeclass-toolbar-additional" + <toolbarbutton id="new-window-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
+ label="&newNavigatorCmd.label;" + label="&newNavigatorCmd.label;"
+ command="key_newNavigator" + command="cmd_newNavigator"
+ tooltip="dynamic-shortcut-tooltip" + tooltip="dynamic-shortcut-tooltip"
+ ondrop="newWindowButtonObserver.onDrop(event)" + ondrop="newWindowButtonObserver.onDrop(event)"
+ ondragover="newWindowButtonObserver.onDragOver(event)" + ondragover="newWindowButtonObserver.onDragOver(event)"
@ -1049,6 +1205,11 @@ new file mode 100644
+ type="checkbox" + type="checkbox"
+ label="&fullScreenCmd.label;" + label="&fullScreenCmd.label;"
+ tooltip="dynamic-shortcut-tooltip"/> + tooltip="dynamic-shortcut-tooltip"/>
+#ifdef MOZ_PHOTON_THEME
+ <toolbarbutton id="library-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
+ oncommand="PanelUI.showSubView('appMenu-libraryView', this, null, true);"
+ label="&places.library.title;"/>
+#endif
+ </toolbarpalette> + </toolbarpalette>
+ </toolbox> + </toolbox>
+ +
@ -1059,9 +1220,18 @@ new file mode 100644
+ <vbox id="browser-border-start" hidden="true" layer="true"/> + <vbox id="browser-border-start" hidden="true" layer="true"/>
+ <vbox id="sidebar-box" hidden="true" class="chromeclass-extrachrome"> + <vbox id="sidebar-box" hidden="true" class="chromeclass-extrachrome">
+ <sidebarheader id="sidebar-header" align="center"> + <sidebarheader id="sidebar-header" align="center">
+ <label id="sidebar-title" persist="value" flex="1" crop="end" control="sidebar"/> + <toolbarbutton id="sidebar-switcher-target" flex="1" class="tabbable">
+ <image id="sidebar-icon" consumeanchor="sidebar-switcher-target"/>
+ <label id="sidebar-title" persist="value" crop="end" flex="1" control="sidebar"/>
+ <image id="sidebar-switcher-arrow"/>
+ </toolbarbutton>
+ <image id="sidebar-throbber"/> + <image id="sidebar-throbber"/>
+ <toolbarbutton class="close-icon tabbable" tooltiptext="&sidebarCloseButton.tooltip;" oncommand="SidebarUI.hide();"/> +# To ensure the button label's intrinsic width doesn't expand the sidebar
+# if the label is long, the button needs flex=1.
+# To ensure the button doesn't expand unnecessarily for short labels, the
+# spacer should significantly out-flex the button.
+ <spacer flex="1000"/>
+ <toolbarbutton id="sidebar-close" class="tabbable" tooltiptext="&sidebarCloseButton.tooltip;" oncommand="SidebarUI.hide();"/>
+ </sidebarheader> + </sidebarheader>
+ <browser id="sidebar" flex="1" autoscroll="false" disablehistory="true" disablefullscreen="true" + <browser id="sidebar" flex="1" autoscroll="false" disablehistory="true" disablefullscreen="true"
+ style="min-width: 14em; width: 18em; max-width: 36em;" tooltip="aHTMLTooltip"/> + style="min-width: 14em; width: 18em; max-width: 36em;" tooltip="aHTMLTooltip"/>
@ -1119,6 +1289,7 @@ new file mode 100644
+ +
+ <svg:svg height="0"> + <svg:svg height="0">
+#include tab-shape.inc.svg +#include tab-shape.inc.svg
+#ifndef MOZ_PHOTON_THEME
+ <svg:clipPath id="urlbar-back-button-clip-path"> + <svg:clipPath id="urlbar-back-button-clip-path">
+#ifndef XP_MACOSX +#ifndef XP_MACOSX
+ <svg:path d="M -9,-4 l 0,1 a 15 15 0 0,1 0,30 l 0,1 l 10000,0 l 0,-32 l -10000,0 z" /> + <svg:path d="M -9,-4 l 0,1 a 15 15 0 0,1 0,30 l 0,1 l 10000,0 l 0,-32 l -10000,0 z" />
@ -1131,6 +1302,7 @@ new file mode 100644
+ <svg:path d="M -6,-2 l 0,1 a 15 15 0 0,1 0,30 l 0,1 l 10000,0 l 0,-32 l -10000,0 z" /> + <svg:path d="M -6,-2 l 0,1 a 15 15 0 0,1 0,30 l 0,1 l 10000,0 l 0,-32 l -10000,0 z" />
+ </svg:clipPath> + </svg:clipPath>
+#endif +#endif
+#endif
+ </svg:svg> + </svg:svg>
+ +
+</vbox> +</vbox>
@ -1143,7 +1315,7 @@ new file mode 100644
diff --git a/browser/base/jar.mn b/browser/base/jar.mn diff --git a/browser/base/jar.mn b/browser/base/jar.mn
--- a/browser/base/jar.mn --- a/browser/base/jar.mn
+++ b/browser/base/jar.mn +++ b/browser/base/jar.mn
@@ -66,16 +66,18 @@ browser.jar: @@ -58,16 +58,18 @@ browser.jar:
content/browser/aboutSocialError.xhtml (content/aboutSocialError.xhtml) content/browser/aboutSocialError.xhtml (content/aboutSocialError.xhtml)
content/browser/aboutProviderDirectory.xhtml (content/aboutProviderDirectory.xhtml) content/browser/aboutProviderDirectory.xhtml (content/aboutProviderDirectory.xhtml)
content/browser/aboutTabCrashed.css (content/aboutTabCrashed.css) content/browser/aboutTabCrashed.css (content/aboutTabCrashed.css)
@ -1159,7 +1331,7 @@ diff --git a/browser/base/jar.mn b/browser/base/jar.mn
content/browser/browser-ctrlTab.js (content/browser-ctrlTab.js) content/browser/browser-ctrlTab.js (content/browser-ctrlTab.js)
content/browser/browser-customization.js (content/browser-customization.js) content/browser/browser-customization.js (content/browser-customization.js)
content/browser/browser-data-submission-info-bar.js (content/browser-data-submission-info-bar.js) content/browser/browser-data-submission-info-bar.js (content/browser-data-submission-info-bar.js)
content/browser/browser-devedition.js (content/browser-devedition.js) content/browser/browser-compacttheme.js (content/browser-compacttheme.js)
content/browser/browser-feeds.js (content/browser-feeds.js) content/browser/browser-feeds.js (content/browser-feeds.js)
content/browser/browser-fullScreenAndPointerLock.js (content/browser-fullScreenAndPointerLock.js) content/browser/browser-fullScreenAndPointerLock.js (content/browser-fullScreenAndPointerLock.js)
diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp
@ -1225,30 +1397,31 @@ 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 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 --- a/browser/components/preferences/in-content/main.js
+++ b/browser/components/preferences/in-content/main.js +++ b/browser/components/preferences/in-content/main.js
@@ -33,16 +33,22 @@ var gMainPane = { @@ -39,16 +39,23 @@ var gMainPane = {
if (AppConstants.platform == "win") {
// In Windows 8 we launch the control panel since it's the only
// way to get all file type association prefs. So we don't know // way to get all file type association prefs. So we don't know
// when the user will select the default. We refresh here periodically // when the user will select the default. We refresh here periodically
// in case the default changes. On other Windows OS's defaults can also // in case the default changes. On other Windows OS's defaults can also
// be set while the prefs are open. // be set while the prefs are open.
window.setInterval(this.updateSetDefaultBrowser.bind(this), 1000); window.setInterval(this.updateSetDefaultBrowser.bind(this), 1000);
} }
+
+ var env = Components.classes["@mozilla.org/process/environment;1"]
+ .getService(Components.interfaces.nsIEnvironment);
+ var kde_session = 0;
+ if (env.get('KDE_FULL_SESSION') == "true")
+ kde_session = 1;
} }
// set up the "use current page" label-changing listener + var env = Components.classes["@mozilla.org/process/environment;1"]
this._updateUseCurrentButton(); + .getService(Components.interfaces.nsIEnvironment);
window.addEventListener("focus", this._updateUseCurrentButton.bind(this), false); + var kde_session = 0;
+ if (env.get('KDE_FULL_SESSION') == "true") {
+ kde_session = 1;
+ }
+
this.buildContentProcessCountMenuList();
this.updateDefaultPerformanceSettingsPref();
this.updateBrowserStartupLastSession(); let defaultPerformancePref =
document.getElementById("browser.preferences.defaultPerformanceSettings.enabled");
@@ -704,16 +710,27 @@ var gMainPane = { defaultPerformancePref.addEventListener("change", () => {
this.updatePerformanceSettingsBox({duringChangeEvent: true});
});
@@ -780,16 +787,27 @@ var gMainPane = {
let alwaysCheckPref = document.getElementById("browser.shell.checkDefaultBrowser"); let alwaysCheckPref = document.getElementById("browser.shell.checkDefaultBrowser");
alwaysCheckPref.value = true; alwaysCheckPref.value = true;
@ -1279,7 +1452,7 @@ diff --git a/browser/components/preferences/in-content/main.js b/browser/compone
diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build
--- a/browser/components/shell/moz.build --- a/browser/components/shell/moz.build
+++ b/browser/components/shell/moz.build +++ b/browser/components/shell/moz.build
@@ -34,16 +34,18 @@ if CONFIG['OS_ARCH'] == 'WINNT': @@ -37,16 +37,18 @@ if CONFIG['OS_ARCH'] == 'WINNT':
] ]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa': elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
SOURCES += [ SOURCES += [
@ -1561,7 +1734,7 @@ new file mode 100644
+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init) +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init)
+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsKDEShellService, Init) +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsKDEShellService, Init)
+ +
+NS_METHOD +NS_IMETHODIMP
+nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult) +nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult)
+{ +{
+ if( nsKDEUtils::kdeSupport()) + if( nsKDEUtils::kdeSupport())
@ -1584,28 +1757,29 @@ new file mode 100644
+ +
+#include "nsIGNOMEShellService.h" +#include "nsIGNOMEShellService.h"
+ +
+NS_METHOD +NS_IMETHODIMP
+nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult); +nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult);
+ +
+#endif // nsunixshellservice_h____ +#endif // nsunixshellservice_h____
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
--- a/browser/installer/package-manifest.in --- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in
@@ -652,16 +652,17 @@ @@ -662,16 +662,18 @@
@RESPATH@/greprefs.js @RESPATH@/browser/defaults/blocklists
@RESPATH@/defaults/autoconfig/prefcalls.js @RESPATH@/browser/defaults/pinning
@RESPATH@/browser/defaults/permissions
; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325) ; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325)
; Technically this is an app pref file, but we are keeping it in the original ; Technically this is an app pref file, but we are keeping it in the original
; gre location for now. ; gre location for now.
@RESPATH@/defaults/pref/channel-prefs.js @RESPATH@/defaults/pref/channel-prefs.js
+@BINPATH@/defaults/pref/kde.js +@BINPATH@/defaults/pref/kde.js
+
; Remote control protocol prefs
; defined in ../../testing/marionette/prefs/marionette.js
@RESPATH@/defaults/pref/marionette.js
; Services (gre) prefs ; Services (gre) prefs
@RESPATH@/defaults/pref/services-sync.js @RESPATH@/defaults/pref/services-sync.js
; [Layout Engine Resources] ; [Layout Engine Resources]
; Style Sheets, Graphics and other Resources used by the layout engine.
@RESPATH@/res/EditorOverride.css
@RESPATH@/res/contenteditable.css

1
google-api-key Normal file
View File

@ -0,0 +1 @@
AIzaSyD1hTe85_a14kr1Ks8T3Ce75rvbR1_Dx7Q

View File

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

3
l10n-55.0.3.tar.xz Normal file
View File

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

View File

@ -1,93 +1,96 @@
ach 34c236a22596 ach f26087a6a6fd
af 90f7ccd90de4 af eeac1ca62457
an 10f71571821e an a4f5fb57979d
ar 0edb7b32133a ar 2f0c4d6a3863
as ee642d74fde9 as ecbc1fafe3fb
ast 80b866a98b5a ast 5b37651ec44d
az 07778ef756d4 az d3d47516000e
bg f86aa012265d be 8c4022c8401a
bn-BD 6182802acd04 bg 0ed29af471d6
bn-IN 0775fc62a38e bn-BD d318bfc6fe59
br 88938f2eb7e2 bn-IN cd84ee209b9c
bs afe1158833f4 br 2be494f41cb3
ca c49b6bb37779 bs 18b79a52d6d3
cak 30c024aa79ef ca 806e39b4de56
cs 392a1ff68cfd cak dad0ddc1d964
cy e9cc2975266f cs 61f3b8744fd4
da cb1423eac811 cy 32cf6d9aa756
de 6535fbec1846 da 554288f1d152
dsb bbdbee2ecc9f de bcb514eb5627
el 4232653d09a7 dsb f076d4d42002
en-GB 3b1783bdb6fd el 13ee5cd21a66
en-ZA 86f98526de2f en-GB 0b2996f2530f
eo 6af9eb3bb290 en-ZA 7e04b235c4f3
es-AR adc3a9f3054e eo bdb64d29938d
es-CL 8ce5a00c2709 es-AR ce262833fb6c
es-ES 3debdad3d876 es-CL b0a5fe0dd439
es-MX c2d80c000c8c es-ES 0d6629322408
et 5ce460a1227b es-MX 1f8e97ae724d
eu 55202a38f74c et 52df77b40a67
fa de4daf555606 eu 4a7550dc8250
ff 98974e0270a8 fa 45ef3a098c22
fi 903b0416494a ff 8025b165aead
fr 7e9efb5f39b1 fi a9b647644be7
fy-NL 551f14553b31 fr b8b7c09d3f1f
ga-IE 94a750872504 fy-NL bc875e89b956
gd b2e4e78a85cf ga-IE 3e543d62ad63
gl 79eda21c5b0b gd f937bddd78eb
gn 8448413afd01 gl df4a43546115
gu-IN ef0d3c1d041a gn fdc6b354f3a4
he 31df213cf89d gu-IN 408c035790bb
hi-IN 6578b433d66e he 0c53c3756f7d
hr 77f103c07be0 hi-IN 8db91f7f5793
hsb 99f7c592ff8c hr d317c15ea672
hu 7ec46b30e96d hsb 4fac422aa702
hy-AM ee9609100a98 hu 5671194f7ec1
id 584289a98164 hy-AM e86992a0c0ee
is 0de2039f0ead id 00395930bb83
it 81a6b9f3a701 is f8474352b98d
ja 289cc8d9b658 it 5698ddc38e5e
ja-JP-mac 1dc42d8f8c6b ja 0701d1112fe5
ka fd11643d032b ja-JP-mac 35cc3be4ea6c
kab 89a29ca718ef ka b2f753a8a642
kk bbde07088662 kab c79bbdfb6e57
km 1d78cae948e2 kk 34777b3d0e58
kn ceb699bfc19e km 3bf31b0b6d9e
ko ab9bc02a8c39 kn 085cc4cfccad
lij 221601dc2320 ko 2a8956fc58a2
lt 1c563aa726f8 lij 217da84c31d3
lv 33dd8fbeb14e lt f8beb0ee9ef4
mai 4974d9967e3a lv a2d7fa888232
mk 85557d511a18 mai b78d319868ff
ml 3ac6473b90b8 mk 26b755e4f87b
mr 9c8106a513fd ml 818f2d7fc3b1
ms f5ed710c8534 mr b84d162a2888
nb-NO c84b8fb6b939 ms e5b008cb44eb
nl b3c2ab953068 my 4a0dc350bdec
nn-NO bc795ce8885a nb-NO d50a43efc007
or ad0d79e1df34 nl a8f7ad7a0e39
pa-IN 7a7d721c7f47 nn-NO e00fbf3066c1
pl 42ea1da43a3b or 11e8e75808ae
pt-BR e9eaef0caba5 pa-IN f01bcb8c13a2
pt-PT 5deb6216933d pl d76f3ba7ebd5
rm 4981325b9462 pt-BR 7cf0629777d1
ro 952587a63617 pt-PT a762c23994b3
ru 3d319dcf82c7 rm f16da0c1a769
si ea8510d62e56 ro 6538d74548a9
sk 968ee9fbd8ba ru 4feb4e4200f5
sl e398e25297bc si d91975c0b4d8
son a071d439a5f3 sk 0b32ca1321b2
sq ab626a887267 sl ad8ee6b5e9eb
sr 3fb1197cc3f3 son abb58457c998
sv-SE 2d93a3f0c284 sq 4374d5e275dd
ta e5fbcf49496f sr baec6e6f600d
te d4cabe943952 sv-SE bf5faf4c09d4
th e66a11b8da51 ta 8de385a48ec1
tr 2ec45f681bb0 te 0064b2051ea7
uk d3ccc79b70b2 th 52f4abb2b927
uz 53122cc7d6ad tr d9f5398e98f8
vi e4f8d820bef2 uk a95815527227
xh 6ba5a5671721 ur a8390b38a5dc
zh-CN 02ca4c1400c1 uz 6a7dac5f89c9
zh-TW d17da9c45a93 vi d931c17a2ff7
xh c2ac7c43e358
zh-CN e61f2d1a43f5
zh-TW 75d29bef92f2

View File

@ -1,14 +1,15 @@
# HG changeset patch # HG changeset patch
# Parent a5cfa3aa11a9d3391df49de6fc5a0e5232c12c10 # Parent a5cfa3aa11a9d3391df49de6fc5a0e5232c12c10
# Parent d36d722c028f553ac3fb2f3655fb2c0ca745050c
Bug 991344 - Rpi3: Firefox crashes after a few seconds of usage Bug 991344 - Rpi3: Firefox crashes after a few seconds of usage
diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp
--- a/netwerk/base/nsIOService.cpp --- a/netwerk/base/nsIOService.cpp
+++ b/netwerk/base/nsIOService.cpp +++ b/netwerk/base/nsIOService.cpp
@@ -830,17 +830,23 @@ nsIOService::NewChannelFromURIWithProxyF @@ -874,17 +874,23 @@ nsIOService::NewChannelFromURIWithProxyF
consoleService->LogStringMessage(NS_LITERAL_STRING( "doesn't support nsIUploadChannel2. An extension has "
"Http channel implementation doesn't support nsIUploadChannel2. An extension has supplied a non-functional http protocol handler. This will break behavior and in future releases not work at all." "supplied a non-functional http protocol handler. This will "
).get()); "break behavior and in future releases not work at all.");
} }
gHasWarnedUploadChannel2 = true; gHasWarnedUploadChannel2 = true;
} }

View File

@ -1,5 +1,5 @@
# HG changeset patch # HG changeset patch
# Parent aff14a54f25dc3146ba7a64408ceb9f486a832db # Parent 172cd661ceed38b3161c6246f6729f4d8370dce3
Description: Add KDE integration to Firefox (toolkit parts) Description: Add KDE integration to Firefox (toolkit parts)
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org> Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
Author: Lubos Lunak <lunak@suse.com> Author: Lubos Lunak <lunak@suse.com>
@ -9,7 +9,7 @@ Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751
diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
--- a/modules/libpref/Preferences.cpp --- a/modules/libpref/Preferences.cpp
+++ b/modules/libpref/Preferences.cpp +++ b/modules/libpref/Preferences.cpp
@@ -31,16 +31,17 @@ @@ -32,16 +32,17 @@
#include "nsIZipReader.h" #include "nsIZipReader.h"
#include "nsPrefBranch.h" #include "nsPrefBranch.h"
#include "nsXPIDLString.h" #include "nsXPIDLString.h"
@ -27,7 +27,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
#include "prefread.h" #include "prefread.h"
#include "prefapi_private_data.h" #include "prefapi_private_data.h"
@@ -1174,16 +1175,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char @@ -1219,16 +1220,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
static nsresult pref_LoadPrefsInDirList(const char *listId) static nsresult pref_LoadPrefsInDirList(const char *listId)
{ {
@ -62,7 +62,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
return NS_OK; return NS_OK;
bool hasMore; bool hasMore;
@@ -1199,17 +1218,17 @@ static nsresult pref_LoadPrefsInDirList( @@ -1244,17 +1263,17 @@ static nsresult pref_LoadPrefsInDirList(
nsAutoCString leaf; nsAutoCString leaf;
path->GetNativeLeafName(leaf); path->GetNativeLeafName(leaf);
@ -81,7 +81,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
{ {
nsZipItemPtr<char> manifest(jarReader, name, true); nsZipItemPtr<char> manifest(jarReader, name, true);
NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE); NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
@@ -1303,24 +1322,36 @@ static nsresult pref_InitInitialObjects( @@ -1348,24 +1367,36 @@ static nsresult pref_InitInitialObjects(
/* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */ /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
static const char* specialFiles[] = { static const char* specialFiles[] = {
#if defined(XP_MACOSX) #if defined(XP_MACOSX)
@ -121,17 +121,17 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
--- a/modules/libpref/moz.build --- a/modules/libpref/moz.build
+++ b/modules/libpref/moz.build +++ b/modules/libpref/moz.build
@@ -31,16 +31,20 @@ UNIFIED_SOURCES += [ @@ -33,16 +33,20 @@ EXPORTS.mozilla += [
UNIFIED_SOURCES += [
'nsPrefBranch.cpp',
'nsPrefsFactory.cpp',
'prefapi.cpp',
'Preferences.cpp',
'prefread.cpp', 'prefread.cpp',
] ]
# prefapi.cpp cannot be built in unified mode because it uses plarena.h
SOURCES += [
'prefapi.cpp',
]
+LOCAL_INCLUDES += [ +LOCAL_INCLUDES += [
+ '/toolkit/xre' + '/toolkit/xre'
+] +]
+ +
include('/ipc/chromium/chromium-config.mozbuild') include('/ipc/chromium/chromium-config.mozbuild')
@ -140,12 +140,12 @@ diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
DEFINES['OS_ARCH'] = CONFIG['OS_ARCH'] DEFINES['OS_ARCH'] = CONFIG['OS_ARCH']
DEFINES['MOZ_WIDGET_TOOLKIT'] = CONFIG['MOZ_WIDGET_TOOLKIT'] DEFINES['MOZ_WIDGET_TOOLKIT'] = CONFIG['MOZ_WIDGET_TOOLKIT']
if CONFIG['MOZ_ENABLE_WEBRENDER']:
FINAL_TARGET_PP_FILES += [ DEFINES['MOZ_ENABLE_WEBRENDER'] = True
diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py
--- a/python/mozbuild/mozpack/chrome/flags.py --- a/python/mozbuild/mozpack/chrome/flags.py
+++ b/python/mozbuild/mozpack/chrome/flags.py +++ b/python/mozbuild/mozpack/chrome/flags.py
@@ -211,16 +211,17 @@ class Flags(OrderedDict): @@ -220,16 +220,17 @@ class Flags(OrderedDict):
'contentaccessible': Flag, 'contentaccessible': Flag,
'os': StringFlag, 'os': StringFlag,
'osversion': VersionFlag, 'osversion': VersionFlag,
@ -187,9 +187,9 @@ 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 diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build
--- a/toolkit/components/downloads/moz.build --- a/toolkit/components/downloads/moz.build
+++ b/toolkit/components/downloads/moz.build +++ b/toolkit/components/downloads/moz.build
@@ -57,16 +57,17 @@ if not CONFIG['MOZ_SUITE']: @@ -37,16 +37,17 @@ UNIFIED_SOURCES += [
'nsDownloadManagerUI.manifest', 'nsDownloadManager.cpp'
] ]
FINAL_LIBRARY = 'xul' FINAL_LIBRARY = 'xul'
@ -205,81 +205,13 @@ diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloa
CXXFLAGS += CONFIG['TK_CFLAGS'] CXXFLAGS += CONFIG['TK_CFLAGS']
diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp
--- a/toolkit/components/downloads/nsDownloadManager.cpp
+++ b/toolkit/components/downloads/nsDownloadManager.cpp
@@ -52,16 +52,20 @@
#ifdef XP_WIN
#include <shlobj.h>
#include "nsWindowsHelpers.h"
#ifdef DOWNLOAD_SCANNER
#include "nsDownloadScanner.h"
#endif
#endif
+#if defined(XP_UNIX) && !defined(XP_MACOSX)
+#include "nsKDEUtils.h"
+#endif
+
#ifdef XP_MACOSX
#include <CoreFoundation/CoreFoundation.h>
#endif
#ifdef MOZ_WIDGET_ANDROID
#include "FennecJNIWrappers.h"
#endif
@@ -2723,16 +2727,25 @@ nsDownload::SetState(DownloadState aStat
nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
// Master pref to control this function.
bool showTaskbarAlert = true;
if (pref)
pref->GetBoolPref(PREF_BDM_SHOWALERTONCOMPLETE, &showTaskbarAlert);
if (showTaskbarAlert) {
+ if( nsKDEUtils::kdeSupport()) {
+ nsTArray<nsCString> command;
+ command.AppendElement( NS_LITERAL_CSTRING( "DOWNLOADFINISHED" ));
+ nsAutoString displayName;
+ GetDisplayName( displayName );
+ command.AppendElement( nsAutoCString( ToNewUTF8String( displayName )));
+ nsKDEUtils::command( command );
+ } else {
+ // begin non-KDE block
int32_t alertInterval = 2000;
if (pref)
pref->GetIntPref(PREF_BDM_SHOWALERTINTERVAL, &alertInterval);
int64_t alertIntervalUSec = alertInterval * PR_USEC_PER_MSEC;
int64_t goat = PR_Now() - mStartTime;
showTaskbarAlert = goat > alertIntervalUSec;
@@ -2764,16 +2777,17 @@ nsDownload::SetState(DownloadState aStat
message, !removeWhenDone,
mPrivate ? NS_LITERAL_STRING("private") : NS_LITERAL_STRING("non-private"),
mDownloadManager, EmptyString(), NS_LITERAL_STRING("auto"),
EmptyString(), EmptyString(), nullptr, mPrivate,
false /* requireInteraction */);
}
}
}
+ }
#if defined(XP_WIN) || defined(XP_MACOSX) || defined(MOZ_WIDGET_ANDROID) || defined(MOZ_WIDGET_GTK)
nsCOMPtr<nsIFileURL> fileURL = do_QueryInterface(mTarget);
nsCOMPtr<nsIFile> file;
nsAutoString path;
if (fileURL &&
NS_SUCCEEDED(fileURL->GetFile(getter_AddRefs(file))) &&
diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
--- a/toolkit/content/jar.mn --- a/toolkit/content/jar.mn
+++ b/toolkit/content/jar.mn +++ b/toolkit/content/jar.mn
@@ -70,29 +70,33 @@ toolkit.jar: @@ -75,29 +75,33 @@ toolkit.jar:
content/global/bindings/button.xml (widgets/button.xml)
content/global/bindings/checkbox.xml (widgets/checkbox.xml)
content/global/bindings/colorpicker.xml (widgets/colorpicker.xml) content/global/bindings/colorpicker.xml (widgets/colorpicker.xml)
content/global/bindings/datekeeper.js (widgets/datekeeper.js)
content/global/bindings/datepicker.js (widgets/datepicker.js)
content/global/bindings/datetimepicker.xml (widgets/datetimepicker.xml) content/global/bindings/datetimepicker.xml (widgets/datetimepicker.xml)
content/global/bindings/datetimepopup.xml (widgets/datetimepopup.xml) content/global/bindings/datetimepopup.xml (widgets/datetimepopup.xml)
content/global/bindings/datetimebox.xml (widgets/datetimebox.xml) content/global/bindings/datetimebox.xml (widgets/datetimebox.xml)
@ -314,7 +246,7 @@ diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/di
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/toolkit/content/widgets/dialog-kde.xml +++ b/toolkit/content/widgets/dialog-kde.xml
@@ -0,0 +1,457 @@ @@ -0,0 +1,455 @@
+<?xml version="1.0"?> +<?xml version="1.0"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public +<!-- 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 + - License, v. 2.0. If a copy of the MPL was not distributed with this
@ -459,8 +391,8 @@ new file mode 100644
+ <method name="centerWindowOnScreen"> + <method name="centerWindowOnScreen">
+ <body> + <body>
+ <![CDATA[ + <![CDATA[
+ var xOffset = screen.availWidth/2 - window.outerWidth/2; + var xOffset = screen.availWidth / 2 - window.outerWidth / 2;
+ var yOffset = screen.availHeight/2 - window.outerHeight/2; + var yOffset = screen.availHeight / 2 - window.outerHeight / 2;
+ +
+ xOffset = xOffset > 0 ? xOffset : 0; + xOffset = xOffset > 0 ? xOffset : 0;
+ yOffset = yOffset > 0 ? yOffset : 0; + yOffset = yOffset > 0 ? yOffset : 0;
@ -474,10 +406,10 @@ new file mode 100644
+ this._configureButtons(this.buttons); + this._configureButtons(this.buttons);
+ +
+ // listen for when window is closed via native close buttons + // listen for when window is closed via native close buttons
+ window.addEventListener("close", this._closeHandler, false); + window.addEventListener("close", this._closeHandler);
+ +
+ // for things that we need to initialize after onload fires + // for things that we need to initialize after onload fires
+ window.addEventListener("load", this.postLoadInit, false); + window.addEventListener("load", this.postLoadInit);
+ +
+ window.moveToAlertPosition = this.moveToAlertPosition; + window.moveToAlertPosition = this.moveToAlertPosition;
+ window.centerWindowOnScreen = this.centerWindowOnScreen; + window.centerWindowOnScreen = this.centerWindowOnScreen;
@ -512,9 +444,8 @@ new file mode 100644
+ // so return focus to the tab itself + // so return focus to the tab itself
+ initialFocusedElt.focus(); + initialFocusedElt.focus();
+ } + }
+ } + } else if (!/Mac/.test(navigator.platform) &&
+ else if (!/Mac/.test(navigator.platform) && + focusedElt.hasAttribute("dlgtype") && focusedElt != defaultButton) {
+ focusedElt.hasAttribute("dlgtype") && focusedElt != defaultButton) {
+ defaultButton.focus(); + defaultButton.focus();
+ } + }
+ } + }
@ -578,13 +509,13 @@ new file mode 100644
+ // don't override custom labels with pre-defined labels on explicit buttons + // don't override custom labels with pre-defined labels on explicit buttons
+ if (!button.hasAttribute("label")) { + if (!button.hasAttribute("label")) {
+ // dialog attributes override the default labels in dialog.properties + // dialog attributes override the default labels in dialog.properties
+ if (this.hasAttribute("buttonlabel"+dlgtype)) { + if (this.hasAttribute("buttonlabel" + dlgtype)) {
+ button.setAttribute("label", this.getAttribute("buttonlabel"+dlgtype)); + button.setAttribute("label", this.getAttribute("buttonlabel" + dlgtype));
+ if (this.hasAttribute("buttonaccesskey"+dlgtype)) + if (this.hasAttribute("buttonaccesskey" + dlgtype))
+ button.setAttribute("accesskey", this.getAttribute("buttonaccesskey"+dlgtype)); + button.setAttribute("accesskey", this.getAttribute("buttonaccesskey" + dlgtype));
+ } else if (dlgtype != "extra1" && dlgtype != "extra2") { + } else if (dlgtype != "extra1" && dlgtype != "extra2") {
+ button.setAttribute("label", this.mStrBundle.GetStringFromName("button-"+dlgtype)); + button.setAttribute("label", this.mStrBundle.GetStringFromName("button-" + dlgtype));
+ var accessKey = this.mStrBundle.GetStringFromName("accesskey-"+dlgtype); + var accessKey = this.mStrBundle.GetStringFromName("accesskey-" + dlgtype);
+ if (accessKey) + if (accessKey)
+ button.setAttribute("accesskey", accessKey); + button.setAttribute("accesskey", accessKey);
+ } + }
@ -592,8 +523,8 @@ new file mode 100644
+ // allow specifying alternate icons in the dialog header + // allow specifying alternate icons in the dialog header
+ if (!button.hasAttribute("icon")) { + if (!button.hasAttribute("icon")) {
+ // if there's an icon specified, use that + // if there's an icon specified, use that
+ if (this.hasAttribute("buttonicon"+dlgtype)) + if (this.hasAttribute("buttonicon" + dlgtype))
+ button.setAttribute("icon", this.getAttribute("buttonicon"+dlgtype)); + button.setAttribute("icon", this.getAttribute("buttonicon" + dlgtype));
+ // otherwise set defaults + // otherwise set defaults
+ else + else
+ switch (dlgtype) { + switch (dlgtype) {
@ -637,7 +568,7 @@ new file mode 100644
+ if (/Win/.test(navigator.platform)) { + if (/Win/.test(navigator.platform)) {
+ var spacer = document.getAnonymousElementByAttribute(this, "anonid", "spacer"); + var spacer = document.getAnonymousElementByAttribute(this, "anonid", "spacer");
+ spacer.removeAttribute("hidden"); + spacer.removeAttribute("hidden");
+ spacer.setAttribute("flex", shown["extra2"]?"1":"0"); + spacer.setAttribute("flex", shown["extra2"] ? "1" : "0");
+ } + }
+ } + }
+ ]]> + ]]>
@ -657,11 +588,10 @@ new file mode 100644
+ if (newDefaultButton) { + if (newDefaultButton) {
+ this.setAttribute("defaultButton", aNewDefault); + this.setAttribute("defaultButton", aNewDefault);
+ newDefaultButton.setAttribute("default", "true"); + newDefaultButton.setAttribute("default", "true");
+ } + } else {
+ else {
+ this.setAttribute("defaultButton", "none"); + this.setAttribute("defaultButton", "none");
+ if (aNewDefault != "none") + if (aNewDefault != "none")
+ dump("invalid new default button: " + aNewDefault + ", assuming: none\n"); + dump("invalid new default button: " + aNewDefault + ", assuming: none\n");
+ } + }
+ ]]> + ]]>
+ </body> + </body>
@ -706,13 +636,13 @@ new file mode 100644
+ <body> + <body>
+ <![CDATA[ + <![CDATA[
+ var event = document.createEvent("Events"); + var event = document.createEvent("Events");
+ event.initEvent("dialog"+aDlgType, true, true); + event.initEvent("dialog" + aDlgType, true, true);
+ +
+ // handle dom event handlers + // handle dom event handlers
+ var noCancel = this.dispatchEvent(event); + var noCancel = this.dispatchEvent(event);
+ +
+ // handle any xml attribute event handlers + // handle any xml attribute event handlers
+ var handler = this.getAttribute("ondialog"+aDlgType); + var handler = this.getAttribute("ondialog" + aDlgType);
+ if (handler != "") { + if (handler != "") {
+ var fn = new Function("event", handler); + var fn = new Function("event", handler);
+ var returned = fn(event); + var returned = fn(event);
@ -776,7 +706,7 @@ diff --git a/toolkit/content/widgets/preferences-kde.xml b/toolkit/content/widge
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/toolkit/content/widgets/preferences-kde.xml +++ b/toolkit/content/widgets/preferences-kde.xml
@@ -0,0 +1,1411 @@ @@ -0,0 +1,1380 @@
+<?xml version="1.0"?> +<?xml version="1.0"?>
+ +
+<!DOCTYPE bindings [ +<!DOCTYPE bindings [
@ -853,8 +783,7 @@ new file mode 100644
+ var event = document.createEvent("Events"); + var event = document.createEvent("Events");
+ event.initEvent("change", true, true); + event.initEvent("change", true, true);
+ aPreference.dispatchEvent(event); + aPreference.dispatchEvent(event);
+ } + } catch (e) {
+ catch (e) {
+ Components.utils.reportError(e); + Components.utils.reportError(e);
+ } + }
+ ]]> + ]]>
@ -907,7 +836,7 @@ new file mode 100644
+ return; + return;
+ +
+ this.preferences.rootBranchInternal + this.preferences.rootBranchInternal
+ .addObserver(this.name, this.preferences, false); + .addObserver(this.name, this.preferences);
+ // In non-instant apply mode, we must try and use the last saved state + // In non-instant apply mode, we must try and use the last saved state
+ // from any previous opens of a child dialog instead of the value from + // from any previous opens of a child dialog instead of the value from
+ // preferences, to pick up any edits a user may have made. + // preferences, to pick up any edits a user may have made.
@ -933,8 +862,7 @@ new file mode 100644
+ +
+ // Don't use the value setter here, we don't want updateElements to be prematurely fired. + // Don't use the value setter here, we don't want updateElements to be prematurely fired.
+ this._value = preference ? preference.value : this.valueFromPreferences; + this._value = preference ? preference.value : this.valueFromPreferences;
+ } + } else
+ else
+ this._value = this.valueFromPreferences; + this._value = this.valueFromPreferences;
+ this.preferences._constructAfterChildren(); + this.preferences._constructAfterChildren();
+ ]]> + ]]>
@ -960,9 +888,9 @@ new file mode 100644
+ +
+ this.preferences.rootBranchInternal + this.preferences.rootBranchInternal
+ .removeObserver(this.name, this.preferences); + .removeObserver(this.name, this.preferences);
+ this.setAttribute('name', val); + this.setAttribute("name", val);
+ this.preferences.rootBranchInternal + this.preferences.rootBranchInternal
+ .addObserver(val, this.preferences, false); + .addObserver(val, this.preferences);
+ +
+ return val; + return val;
+ </setter> + </setter>
@ -1118,13 +1046,9 @@ new file mode 100644
+ .data; + .data;
+ case "string": + case "string":
+ case "unichar": + case "unichar":
+ return this._branch + return this._branch.getStringPref(this.name);
+ .getComplexValue(this.name, Components.interfaces.nsISupportsString)
+ .data;
+ case "fontname": + case "fontname":
+ var family = this._branch + var family = this._branch.getStringPref(this.name);
+ .getComplexValue(this.name, Components.interfaces.nsISupportsString)
+ .data;
+ var fontEnumerator = Components.classes["@mozilla.org/gfx/fontenumerator;1"] + var fontEnumerator = Components.classes["@mozilla.org/gfx/fontenumerator;1"]
+ .createInstance(Components.interfaces.nsIFontEnumerator); + .createInstance(Components.interfaces.nsIFontEnumerator);
+ return fontEnumerator.getStandardFamilyName(family); + return fontEnumerator.getStandardFamilyName(family);
@ -1135,8 +1059,7 @@ new file mode 100644
+ default: + default:
+ this._reportUnknownType(); + this._reportUnknownType();
+ } + }
+ } + } catch (e) { }
+ catch (e) { }
+ return null; + return null;
+ ]]> + ]]>
+ </getter> + </getter>
@ -1170,11 +1093,7 @@ new file mode 100644
+ case "string": + case "string":
+ case "unichar": + case "unichar":
+ case "fontname": + case "fontname":
+ var iss = Components.classes["@mozilla.org/supports-string;1"] + this.preferences.rootBranch.setStringPref(this.name, val);
+ .createInstance(Components.interfaces.nsISupportsString);
+ iss.data = val;
+ this.preferences.rootBranch
+ .setComplexValue(this.name, Components.interfaces.nsISupportsString, iss);
+ break; + break;
+ case "file": + case "file":
+ var lf; + var lf;
@ -1184,8 +1103,7 @@ new file mode 100644
+ lf.persistentDescriptor = val; + lf.persistentDescriptor = val;
+ if (!lf.exists()) + if (!lf.exists())
+ lf.initWithPath(val); + lf.initWithPath(val);
+ } + } else
+ else
+ lf = val.QueryInterface(Components.interfaces.nsILocalFile); + lf = val.QueryInterface(Components.interfaces.nsILocalFile);
+ this.preferences.rootBranch + this.preferences.rootBranch
+ .setComplexValue(this.name, Components.interfaces.nsILocalFile, lf); + .setComplexValue(this.name, Components.interfaces.nsILocalFile, lf);
@ -1216,11 +1134,10 @@ new file mode 100644
+ try { + try {
+ var event = document.createEvent("Events"); + var event = document.createEvent("Events");
+ event.initEvent("syncfrompreference", true, true); + event.initEvent("syncfrompreference", true, true);
+ var f = new Function ("event", + var f = new Function("event",
+ aElement.getAttribute("onsyncfrompreference")); + aElement.getAttribute("onsyncfrompreference"));
+ rv = f.call(aElement, event); + rv = f.call(aElement, event);
+ } + } catch (e) {
+ catch (e) {
+ Components.utils.reportError(e); + Components.utils.reportError(e);
+ } + }
+ } + }
@ -1255,8 +1172,7 @@ new file mode 100644
+ // of the input event handler. + // of the input event handler.
+ if (aElement.value !== val) + if (aElement.value !== val)
+ setValue(aElement, "value", val); + setValue(aElement, "value", val);
+ } + } else
+ else
+ setValue(aElement, "value", val); + setValue(aElement, "value", val);
+ ]]> + ]]>
+ </body> + </body>
@ -1271,13 +1187,12 @@ new file mode 100644
+ try { + try {
+ var event = document.createEvent("Events"); + var event = document.createEvent("Events");
+ event.initEvent("synctopreference", true, true); + event.initEvent("synctopreference", true, true);
+ var f = new Function ("event", + var f = new Function("event",
+ aElement.getAttribute("onsynctopreference")); + aElement.getAttribute("onsynctopreference"));
+ var rv = f.call(aElement, event); + var rv = f.call(aElement, event);
+ if (rv !== undefined) + if (rv !== undefined)
+ return rv; + return rv;
+ } + } catch (e) {
+ catch (e) {
+ Components.utils.reportError(e); + Components.utils.reportError(e);
+ } + }
+ } + }
@ -1423,7 +1338,7 @@ new file mode 100644
+ acceptButton.disabled = true; + acceptButton.disabled = true;
+ } else { + } else {
+ // morph the Cancel button into the Close button + // morph the Cancel button into the Close button
+ cancelButton.setAttribute ("icon", "close"); + cancelButton.setAttribute("icon", "close");
+ cancelButton.label = docElt.getAttribute("closebuttonlabel"); + cancelButton.label = docElt.getAttribute("closebuttonlabel");
+ cancelButton.accesskey = docElt.getAttribute("closebuttonaccesskey"); + cancelButton.accesskey = docElt.getAttribute("closebuttonaccesskey");
+ } + }
@ -1444,8 +1359,7 @@ new file mode 100644
+ if ("arguments" in window && window.arguments[0] && document.getElementById(window.arguments[0]) && document.getElementById(window.arguments[0]).nodeName == "prefpane") { + if ("arguments" in window && window.arguments[0] && document.getElementById(window.arguments[0]) && document.getElementById(window.arguments[0]).nodeName == "prefpane") {
+ paneToLoad = document.getElementById(window.arguments[0]); + paneToLoad = document.getElementById(window.arguments[0]);
+ this.lastSelected = paneToLoad.id; + this.lastSelected = paneToLoad.id;
+ } + } else if (lastPane)
+ else if (lastPane)
+ paneToLoad = lastPane; + paneToLoad = lastPane;
+ else + else
+ paneToLoad = panes[0]; + paneToLoad = panes[0];
@ -1542,14 +1456,12 @@ new file mode 100644
+ +
+ this._selector.selectedItem = document.getAnonymousElementByAttribute(this, "pane", aPaneElement.id); + this._selector.selectedItem = document.getAnonymousElementByAttribute(this, "pane", aPaneElement.id);
+ if (!aPaneElement.loaded) { + if (!aPaneElement.loaded) {
+ let OverlayLoadObserver = function(aPane) + let OverlayLoadObserver = function(aPane) {
+ {
+ this._pane = aPane; + this._pane = aPane;
+ } + }
+ OverlayLoadObserver.prototype = { + OverlayLoadObserver.prototype = {
+ _outer: this, + _outer: this,
+ observe: function (aSubject, aTopic, aData) + observe(aSubject, aTopic, aData) {
+ {
+ this._pane.loaded = true; + this._pane.loaded = true;
+ this._outer._fireEvent("paneload", this._pane); + this._outer._fireEvent("paneload", this._pane);
+ this._outer._selectPane(this._pane); + this._outer._selectPane(this._pane);
@ -1558,8 +1470,7 @@ new file mode 100644
+ +
+ var obs = new OverlayLoadObserver(aPaneElement); + var obs = new OverlayLoadObserver(aPaneElement);
+ document.loadOverlay(aPaneElement.src, obs); + document.loadOverlay(aPaneElement.src, obs);
+ } + } else
+ else
+ this._selectPane(aPaneElement); + this._selectPane(aPaneElement);
+ ]]> + ]]>
+ </body> + </body>
@ -1576,14 +1487,13 @@ new file mode 100644
+ event.initEvent(aEventName, true, true); + event.initEvent(aEventName, true, true);
+ var cancel = !aTarget.dispatchEvent(event); + var cancel = !aTarget.dispatchEvent(event);
+ if (aTarget.hasAttribute("on" + aEventName)) { + if (aTarget.hasAttribute("on" + aEventName)) {
+ var fn = new Function ("event", aTarget.getAttribute("on" + aEventName)); + var fn = new Function("event", aTarget.getAttribute("on" + aEventName));
+ var rv = fn.call(aTarget, event); + var rv = fn.call(aTarget, event);
+ if (rv == false) + if (rv == false)
+ cancel = true; + cancel = true;
+ } + }
+ return !cancel; + return !cancel;
+ } + } catch (e) {
+ catch (e) {
+ Components.utils.reportError(e); + Components.utils.reportError(e);
+ } + }
+ return false; + return false;
@ -1637,11 +1547,10 @@ new file mode 100644
+ if (this._shouldAnimate && oldPane.id != aPaneElement.id) { + if (this._shouldAnimate && oldPane.id != aPaneElement.id) {
+ aPaneElement.style.opacity = 0.0; + aPaneElement.style.opacity = 0.0;
+ this.animate(oldPane, aPaneElement); + this.animate(oldPane, aPaneElement);
+ } + } else if (!this._shouldAnimate && prefpanes.length > 1) {
+ else if (!this._shouldAnimate && prefpanes.length > 1) { + var targetHeight = parseInt(window.getComputedStyle(this._paneDeckContainer).height);
+ var targetHeight = parseInt(window.getComputedStyle(this._paneDeckContainer, "").height); + var verticalPadding = parseInt(window.getComputedStyle(aPaneElement).paddingTop);
+ var verticalPadding = parseInt(window.getComputedStyle(aPaneElement, "").paddingTop); + verticalPadding += parseInt(window.getComputedStyle(aPaneElement).paddingBottom);
+ verticalPadding += parseInt(window.getComputedStyle(aPaneElement, "").paddingBottom);
+ if (aPaneElement.contentHeight > targetHeight - verticalPadding) { + if (aPaneElement.contentHeight > targetHeight - verticalPadding) {
+ // To workaround the bottom border of a groupbox from being + // To workaround the bottom border of a groupbox from being
+ // cutoff an hbox with a class of bottomBox may enclose it. + // cutoff an hbox with a class of bottomBox may enclose it.
@ -1650,7 +1559,7 @@ new file mode 100644
+ var bottomPadding = 0; + var bottomPadding = 0;
+ var bottomBox = aPaneElement.getElementsByAttribute("class", "bottomBox")[0]; + var bottomBox = aPaneElement.getElementsByAttribute("class", "bottomBox")[0];
+ if (bottomBox) + if (bottomBox)
+ bottomPadding = parseInt(window.getComputedStyle(bottomBox, "").paddingBottom); + bottomPadding = parseInt(window.getComputedStyle(bottomBox).paddingBottom);
+ window.innerHeight += bottomPadding + verticalPadding + aPaneElement.contentHeight - targetHeight; + window.innerHeight += bottomPadding + verticalPadding + aPaneElement.contentHeight - targetHeight;
+ } + }
+ +
@ -1672,12 +1581,8 @@ new file mode 100644
+ <![CDATA[ + <![CDATA[
+ var psvc = Components.classes["@mozilla.org/preferences-service;1"] + var psvc = Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefBranch); + .getService(Components.interfaces.nsIPrefBranch);
+ var animate = /Mac/.test(navigator.platform); + return psvc.getBoolPref("browser.preferences.animateFadeIn",
+ try { + /Mac/.test(navigator.platform));
+ animate = psvc.getBoolPref("browser.preferences.animateFadeIn");
+ }
+ catch (e) { }
+ return animate;
+ ]]> + ]]>
+ </getter> + </getter>
+ </property> + </property>
@ -1729,14 +1634,13 @@ new file mode 100644
+ if (increment != 0) { + if (increment != 0) {
+ window.innerHeight += increment; + window.innerHeight += increment;
+ this._currentHeight += increment; + this._currentHeight += increment;
+ } + } else {
+ else {
+ aTimer.cancel(); + aTimer.cancel();
+ this._setUpFadeTimer(); + this._setUpFadeTimer();
+ } + }
+ } else if (aTimer == this._fadeTimer) { + } else if (aTimer == this._fadeTimer) {
+ var elt = document.getElementById(this.lastSelected); + var elt = document.getElementById(this.lastSelected);
+ var newOpacity = parseFloat(window.getComputedStyle(elt, "").opacity) + this._fadeIncrement; + var newOpacity = parseFloat(window.getComputedStyle(elt).opacity) + this._fadeIncrement;
+ if (newOpacity < 1.0) + if (newOpacity < 1.0)
+ elt.style.opacity = newOpacity; + elt.style.opacity = newOpacity;
+ else { + else {
@ -1825,8 +1729,7 @@ new file mode 100644
+ if ("initWithParams" in win) + if ("initWithParams" in win)
+ win.initWithParams(aParams); + win.initWithParams(aParams);
+ win.focus(); + win.focus();
+ } + } else {
+ else {
+ var features = "resizable,dialog=no,centerscreen" + (aFeatures != "" ? ("," + aFeatures) : ""); + var features = "resizable,dialog=no,centerscreen" + (aFeatures != "" ? ("," + aFeatures) : "");
+ var parentWindow = (this.instantApply || !window.opener || window.opener.closed) ? window : window.opener; + var parentWindow = (this.instantApply || !window.opener || window.opener.closed) ? window : window.opener;
+ win = parentWindow.openDialog(aURL, "_blank", features, aParams); + win = parentWindow.openDialog(aURL, "_blank", features, aParams);
@ -1847,15 +1750,12 @@ new file mode 100644
+ .getService(Components.interfaces.nsIScriptSecurityManager); + .getService(Components.interfaces.nsIScriptSecurityManager);
+ if (this.type == "child" && window.opener && + if (this.type == "child" && window.opener &&
+ secMan.isSystemPrincipal(window.opener.document.nodePrincipal)) { + secMan.isSystemPrincipal(window.opener.document.nodePrincipal)) {
+ let psvc = Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefBranch);
+ var pdocEl = window.opener.document.documentElement; + var pdocEl = window.opener.document.documentElement;
+ if (pdocEl.instantApply) { + if (pdocEl.instantApply) {
+ let panes = this.preferencePanes; + let panes = this.preferencePanes;
+ for (let i = 0; i < panes.length; ++i) + for (let i = 0; i < panes.length; ++i)
+ panes[i].writePreferences(true); + panes[i].writePreferences(true);
+ } + } else {
+ else {
+ // Clone all the preferences elements from the child document and + // Clone all the preferences elements from the child document and
+ // insert them into the pane collection of the parent. + // insert them into the pane collection of the parent.
+ var pdoc = window.opener.document; + var pdoc = window.opener.document;
@ -1898,8 +1798,7 @@ new file mode 100644
+ } + }
+ } + }
+ } + }
+ } + } else {
+ else {
+ let panes = this.preferencePanes; + let panes = this.preferencePanes;
+ for (var i = 0; i < panes.length; ++i) + for (var i = 0; i < panes.length; ++i)
+ panes[i].writePreferences(false); + panes[i].writePreferences(false);
@ -2037,7 +1936,8 @@ new file mode 100644
+ while (temp && temp.nodeType == Node.ELEMENT_NODE && + while (temp && temp.nodeType == Node.ELEMENT_NODE &&
+ !temp.hasAttribute("preference")) + !temp.hasAttribute("preference"))
+ temp = temp.parentNode; + temp = temp.parentNode;
+ return temp.nodeType == Node.ELEMENT_NODE ? temp : aStartElement; + return temp && temp.nodeType == Node.ELEMENT_NODE ?
+ temp : aStartElement;
+ ]]> + ]]>
+ </body> + </body>
+ </method> + </method>
@ -2108,9 +2008,9 @@ new file mode 100644
+ +
+ <property name="contentHeight"> + <property name="contentHeight">
+ <getter> + <getter>
+ var targetHeight = parseInt(window.getComputedStyle(this._content, "").height); + var targetHeight = parseInt(window.getComputedStyle(this._content).height);
+ targetHeight += parseInt(window.getComputedStyle(this._content, "").marginTop); + targetHeight += parseInt(window.getComputedStyle(this._content).marginTop);
+ targetHeight += parseInt(window.getComputedStyle(this._content, "").marginBottom); + targetHeight += parseInt(window.getComputedStyle(this._content).marginBottom);
+ return targetHeight; + return targetHeight;
+ </getter> + </getter>
+ </property> + </property>
@ -2150,8 +2050,7 @@ new file mode 100644
+ try { + try {
+ var preference = this.preferenceForElement(elements[i]); + var preference = this.preferenceForElement(elements[i]);
+ preference.setElementValue(elements[i]); + preference.setElementValue(elements[i]);
+ } + } catch (e) {
+ catch (e) {
+ dump("*** No preference found for " + elements[i].getAttribute("preference") + "\n"); + dump("*** No preference found for " + elements[i].getAttribute("preference") + "\n");
+ } + }
+ } + }
@ -2191,7 +2090,7 @@ new file mode 100644
diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downloads/nsHelperAppDlg.js diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downloads/nsHelperAppDlg.js
--- a/toolkit/mozapps/downloads/nsHelperAppDlg.js --- a/toolkit/mozapps/downloads/nsHelperAppDlg.js
+++ b/toolkit/mozapps/downloads/nsHelperAppDlg.js +++ b/toolkit/mozapps/downloads/nsHelperAppDlg.js
@@ -627,17 +627,17 @@ nsUnknownContentTypeDialog.prototype = { @@ -625,17 +625,17 @@ nsUnknownContentTypeDialog.prototype = {
else else
typeString = mimeInfo.MIMEType; typeString = mimeInfo.MIMEType;
} }
@ -2210,7 +2109,7 @@ diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downl
}, },
// Returns true if opening the default application makes sense. // Returns true if opening the default application makes sense.
@@ -801,17 +801,17 @@ nsUnknownContentTypeDialog.prototype = { @@ -799,17 +799,17 @@ nsUnknownContentTypeDialog.prototype = {
switch (this.dialogElement("openHandler").selectedIndex) { switch (this.dialogElement("openHandler").selectedIndex) {
case 0: case 0:
// No app need be specified in this case. // No app need be specified in this case.
@ -2229,7 +2128,7 @@ diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downl
this.mDialog.document.documentElement.getButton("accept").disabled = !ok; this.mDialog.document.documentElement.getButton("accept").disabled = !ok;
}, },
@@ -1068,30 +1068,56 @@ nsUnknownContentTypeDialog.prototype = { @@ -1066,30 +1066,56 @@ nsUnknownContentTypeDialog.prototype = {
params.handlerApp.executable && params.handlerApp.executable &&
params.handlerApp.executable.isFile()) { params.handlerApp.executable.isFile()) {
// Remember the file they chose to run. // Remember the file they chose to run.
@ -2396,8 +2295,8 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
--- a/toolkit/xre/moz.build --- a/toolkit/xre/moz.build
+++ b/toolkit/xre/moz.build +++ b/toolkit/xre/moz.build
@@ -40,17 +40,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co @@ -61,17 +61,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
'updaterfileutils_osx.mm', '../components/printingui/mac',
] ]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit': elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit':
UNIFIED_SOURCES += [ UNIFIED_SOURCES += [
@ -2841,7 +2740,7 @@ diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
'android/nsExternalSharingAppService.cpp', 'android/nsExternalSharingAppService.cpp',
'android/nsExternalURLHandlerService.cpp', 'android/nsExternalURLHandlerService.cpp',
'android/nsMIMEInfoAndroid.cpp', 'android/nsMIMEInfoAndroid.cpp',
@@ -123,16 +125,17 @@ include('/ipc/chromium/chromium-config.m @@ -125,16 +127,17 @@ include('/ipc/chromium/chromium-config.m
FINAL_LIBRARY = 'xul' FINAL_LIBRARY = 'xul'
@ -3200,7 +3099,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
#include "nsXPIDLString.h" #include "nsXPIDLString.h"
#include "nsIURL.h" #include "nsIURL.h"
#include "nsIFileStreams.h" #include "nsIFileStreams.h"
@@ -1146,26 +1146,26 @@ nsresult nsOSHelperAppService::OSProtoco @@ -1143,26 +1143,26 @@ nsresult nsOSHelperAppService::OSProtoco
ContentAction::Action::defaultActionForScheme(QString(aProtocolScheme) + ':'); ContentAction::Action::defaultActionForScheme(QString(aProtocolScheme) + ':');
if (action.isValid()) if (action.isValid())
@ -3229,7 +3128,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
nsresult nsOSHelperAppService::GetFileTokenForPath(const char16_t * platformAppPath, nsIFile ** aFile) nsresult nsOSHelperAppService::GetFileTokenForPath(const char16_t * platformAppPath, nsIFile ** aFile)
{ {
@@ -1252,17 +1252,17 @@ nsOSHelperAppService::GetFromExtension(c @@ -1249,17 +1249,17 @@ nsOSHelperAppService::GetFromExtension(c
mime_types_description, mime_types_description,
true); true);
@ -3248,7 +3147,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt),
majorType, majorType,
@@ -1373,17 +1373,17 @@ nsOSHelperAppService::GetFromType(const @@ -1370,17 +1370,17 @@ nsOSHelperAppService::GetFromType(const
nsAutoString extensions, mime_types_description; nsAutoString extensions, mime_types_description;
LookUpExtensionsAndDescription(majorType, LookUpExtensionsAndDescription(majorType,
minorType, minorType,
@ -3270,7 +3169,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
--- a/widget/gtk/moz.build --- a/widget/gtk/moz.build
+++ b/widget/gtk/moz.build +++ b/widget/gtk/moz.build
@@ -101,16 +101,17 @@ else: @@ -109,16 +109,17 @@ else:
include('/ipc/chromium/chromium-config.mozbuild') include('/ipc/chromium/chromium-config.mozbuild')
FINAL_LIBRARY = 'xul' FINAL_LIBRARY = 'xul'
@ -3281,13 +3180,13 @@ diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
'/other-licenses/atk-1.0', '/other-licenses/atk-1.0',
+ '/toolkit/xre', + '/toolkit/xre',
'/widget', '/widget',
'/widget/headless',
] ]
if CONFIG['MOZ_X11']: if CONFIG['MOZ_X11']:
LOCAL_INCLUDES += [ LOCAL_INCLUDES += [
'/widget/x11', '/widget/x11',
] ]
diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
--- a/widget/gtk/nsFilePicker.cpp --- a/widget/gtk/nsFilePicker.cpp
+++ b/widget/gtk/nsFilePicker.cpp +++ b/widget/gtk/nsFilePicker.cpp
@ -3645,7 +3544,7 @@ diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp
--- a/xpcom/components/ManifestParser.cpp --- a/xpcom/components/ManifestParser.cpp
+++ b/xpcom/components/ManifestParser.cpp +++ b/xpcom/components/ManifestParser.cpp
@@ -32,16 +32,17 @@ @@ -33,16 +33,17 @@
#include "nsTextFormatter.h" #include "nsTextFormatter.h"
#include "nsVersionComparator.h" #include "nsVersionComparator.h"
#include "nsXPCOMCIDInternal.h" #include "nsXPCOMCIDInternal.h"
@ -3663,7 +3562,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
const char* directive; const char* directive;
int argc; int argc;
@@ -472,16 +473,17 @@ ParseManifest(NSLocationType aType, File @@ -466,16 +467,17 @@ ParseManifest(NSLocationType aType, File
NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled"); NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled");
NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired"); NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired");
NS_NAMED_LITERAL_STRING(kApplication, "application"); NS_NAMED_LITERAL_STRING(kApplication, "application");
@ -3681,7 +3580,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
NS_NAMED_LITERAL_STRING(kMain, "main"); NS_NAMED_LITERAL_STRING(kMain, "main");
NS_NAMED_LITERAL_STRING(kContent, "content"); NS_NAMED_LITERAL_STRING(kContent, "content");
@@ -532,44 +534,49 @@ ParseManifest(NSLocationType aType, File @@ -526,44 +528,49 @@ ParseManifest(NSLocationType aType, File
CopyUTF8toUTF16(s, abi); CopyUTF8toUTF16(s, abi);
abi.Insert(char16_t('_'), 0); abi.Insert(char16_t('_'), 0);
abi.Insert(osTarget, 0); abi.Insert(osTarget, 0);
@ -3731,7 +3630,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
process = kMain; process = kMain;
} }
@@ -672,25 +679,27 @@ ParseManifest(NSLocationType aType, File @@ -666,25 +673,27 @@ ParseManifest(NSLocationType aType, File
TriState stOsVersion = eUnspecified; TriState stOsVersion = eUnspecified;
TriState stOs = eUnspecified; TriState stOs = eUnspecified;
TriState stABI = eUnspecified; TriState stABI = eUnspecified;
@ -3748,7 +3647,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
NS_ConvertASCIItoUTF16 wtoken(token); NS_ConvertASCIItoUTF16 wtoken(token);
if (CheckStringFlag(kApplication, wtoken, appID, stApp) || if (CheckStringFlag(kApplication, wtoken, appID, stApp) ||
CheckStringFlag(kOs, wtoken, osTarget, stOs) || CheckOsFlag(kOs, wtoken, osTarget, stOs) ||
CheckStringFlag(kABI, wtoken, abi, stABI) || CheckStringFlag(kABI, wtoken, abi, stABI) ||
+ CheckStringFlag(kDesktop, wtoken, desktop, stDesktop) || + CheckStringFlag(kDesktop, wtoken, desktop, stDesktop) ||
CheckStringFlag(kProcess, wtoken, process, stProcess) || CheckStringFlag(kProcess, wtoken, process, stProcess) ||
@ -3759,7 +3658,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
} }
#if defined(MOZ_WIDGET_ANDROID) #if defined(MOZ_WIDGET_ANDROID)
@@ -740,16 +749,17 @@ ParseManifest(NSLocationType aType, File @@ -729,16 +738,17 @@ ParseManifest(NSLocationType aType, File
} }
if (!ok || if (!ok ||
@ -3815,7 +3714,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
#include "prmem.h" #include "prmem.h"
#include "plbase64.h" #include "plbase64.h"
@@ -1948,42 +1949,52 @@ nsLocalFile::SetPersistentDescriptor(con @@ -1941,59 +1942,74 @@ nsLocalFile::SetPersistentDescriptor(con
return InitWithNativePath(aPersistentDescriptor); return InitWithNativePath(aPersistentDescriptor);
#endif #endif
} }
@ -3839,22 +3738,32 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
if (isDirectory) { if (isDirectory) {
- return giovfs->ShowURIForInput(mPath); - return giovfs->ShowURIForInput(mPath);
+ url = mPath; + url = mPath;
} else if (NS_SUCCEEDED(giovfs->OrgFreedesktopFileManager1ShowItems(mPath))) {
return NS_OK;
} else {
nsCOMPtr<nsIFile> parentDir;
nsAutoCString dirPath;
if (NS_FAILED(GetParent(getter_AddRefs(parentDir)))) {
return NS_ERROR_FAILURE;
}
if (NS_FAILED(parentDir->GetNativePath(dirPath))) {
return NS_ERROR_FAILURE;
}
- return giovfs->ShowURIForInput(dirPath);
+ url = dirPath;
} }
+ if (NS_SUCCEEDED(giovfs->OrgFreedesktopFileManager1ShowItems(mPath))) {
return NS_OK;
}
nsCOMPtr<nsIFile> parentDir;
nsAutoCString dirPath;
if (NS_FAILED(GetParent(getter_AddRefs(parentDir)))) {
return NS_ERROR_FAILURE;
}
if (NS_FAILED(parentDir->GetNativePath(dirPath))) {
return NS_ERROR_FAILURE;
}
- return giovfs->ShowURIForInput(dirPath);
+ url = dirPath;
#elif defined(MOZ_WIDGET_COCOA)
CFURLRef url;
if (NS_SUCCEEDED(GetCFURL(&url))) {
nsresult rv = CocoaFileUtils::RevealFileInFinder(url);
::CFRelease(url);
return rv;
}
return NS_ERROR_FAILURE;
#else
return NS_ERROR_FAILURE;
#endif
+ if(nsKDEUtils::kdeSupport()) { + if(nsKDEUtils::kdeSupport()) {
+ nsTArray<nsCString> command; + nsTArray<nsCString> command;
+ command.AppendElement( NS_LITERAL_CSTRING("REVEAL") ); + command.AppendElement( NS_LITERAL_CSTRING("REVEAL") );
@ -3866,17 +3775,6 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
+ return NS_ERROR_FAILURE; + return NS_ERROR_FAILURE;
+ +
+ return giovfs->ShowURIForInput(url); + return giovfs->ShowURIForInput(url);
#elif defined(MOZ_WIDGET_COCOA)
CFURLRef url;
if (NS_SUCCEEDED(GetCFURL(&url))) {
nsresult rv = CocoaFileUtils::RevealFileInFinder(url);
::CFRelease(url);
return rv;
}
return NS_ERROR_FAILURE;
@@ -1991,16 +2002,22 @@ nsLocalFile::Reveal()
return NS_ERROR_FAILURE;
#endif
} }
NS_IMETHODIMP NS_IMETHODIMP

View File

@ -1,143 +0,0 @@
From: Hans Petter Jansson <hpj@copyleft.no>
Wolfgang Rosenauer <wr@rosenauer.org>
Subject: use libnsssharedhelper if available at compile time
(can be disabled by exporting MOZ_XRE_NO_NSSHELPER=1)
References:
diff --git a/old-configure.in b/old-configure.in
--- a/old-configure.in
+++ b/old-configure.in
@@ -5358,16 +5358,31 @@ esac
AC_SUBST(MOZ_TREE_CAIRO)
AC_SUBST_LIST(MOZ_CAIRO_CFLAGS)
AC_SUBST_LIST(MOZ_CAIRO_LIBS)
AC_SUBST_LIST(MOZ_CAIRO_OSLIBS)
AC_SUBST(MOZ_TREE_PIXMAN)
dnl ========================================================
+dnl Check for nss-shared-helper
+dnl ========================================================
+
+ PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper,
+ [MOZ_ENABLE_NSSHELPER=1],
+ [MOZ_ENABLE_NSSHELPER=])
+
+if test "$MOZ_ENABLE_NSSHELPER"; then
+ AC_DEFINE(MOZ_ENABLE_NSSHELPER)
+fi
+AC_SUBST(MOZ_ENABLE_NSSHELPER)
+AC_SUBST_LIST(NSSHELPER_CFLAGS)
+AC_SUBST_LIST(NSSHELPER_LIBS)
+
+dnl ========================================================
dnl disable xul
dnl ========================================================
MOZ_ARG_DISABLE_BOOL(xul,
[ --disable-xul Disable XUL],
MOZ_XUL= )
if test "$MOZ_XUL"; then
AC_DEFINE(MOZ_XUL)
else
diff --git a/security/manager/ssl/moz.build b/security/manager/ssl/moz.build
--- a/security/manager/ssl/moz.build
+++ b/security/manager/ssl/moz.build
@@ -160,16 +160,19 @@ if CONFIG['MOZ_XUL']:
]
UNIFIED_SOURCES += [
'md4.c',
]
FINAL_LIBRARY = 'xul'
+CXXFLAGS += sorted(CONFIG['NSSHELPER_CFLAGS'])
+OS_LIBS += sorted(CONFIG['NSSHELPER_LIBS'])
+
LOCAL_INCLUDES += [
'/dom/base',
'/dom/crypto',
'/security/certverifier',
'/security/pkix/include',
]
LOCAL_INCLUDES += [
diff --git a/security/manager/ssl/nsNSSComponent.cpp b/security/manager/ssl/nsNSSComponent.cpp
--- a/security/manager/ssl/nsNSSComponent.cpp
+++ b/security/manager/ssl/nsNSSComponent.cpp
@@ -1,14 +1,21 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+#ifdef MOZ_ENABLE_NSSHELPER
+#pragma GCC visibility push(default)
+#include <nss-shared-helper.h>
+#pragma GCC visibility pop
+#include "prenv.h"
+#endif
+
#include "nsNSSComponent.h"
#include "ExtendedValidation.h"
#include "NSSCertDBTrustDomain.h"
#include "ScopedNSSTypes.h"
#include "SharedSSLState.h"
#include "cert.h"
#include "certdb.h"
@@ -1702,17 +1709,31 @@ nsNSSComponent::InitializeNSS()
return rv;
}
}
MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("inSafeMode: %u\n", inSafeMode));
if (!nocertdb && !profileStr.IsEmpty()) {
// First try to initialize the NSS DB in read/write mode.
// Only load PKCS11 modules if we're not in safe mode.
+#ifdef MOZ_ENABLE_NSSHELPER
+ if (PR_GetEnv("MOZ_XRE_NO_NSSHELPER")) {
+ init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false, !inSafeMode);
+ } else {
+ uint32_t flags = NSS_INIT_NOROOTINIT | NSS_INIT_OPTIMIZESPACE;
+ init_rv = ::nsshelp_open_db ("Firefox", profileStr.get(), flags);
+
+ if (init_rv != SECSuccess) {
+ MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("can not init NSS using nsshelp_open_db in %s\n", profileStr.get()));
+ init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false, !inSafeMode);
+ }
+ }
+#else
init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false, !inSafeMode);
+#endif
// If that fails, attempt read-only mode.
if (init_rv != SECSuccess) {
MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("could not init NSS r/w in %s\n", profileStr.get()));
init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), true, !inSafeMode);
}
if (init_rv != SECSuccess) {
MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("could not init in r/o either\n"));
}
diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build
--- a/toolkit/library/moz.build
+++ b/toolkit/library/moz.build
@@ -220,16 +220,18 @@ OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
if CONFIG['SERVO_TARGET_DIR']:
if CONFIG['_MSC_VER']:
OS_LIBS += ['%s/geckoservo' % CONFIG['SERVO_TARGET_DIR']]
else:
OS_LIBS += ['-L%s' % CONFIG['SERVO_TARGET_DIR'], '-lgeckoservo']
+OS_LIBS += sorted(CONFIG['NSSHELPER_LIBS'])
+
if CONFIG['MOZ_SYSTEM_JPEG']:
OS_LIBS += CONFIG['MOZ_JPEG_LIBS']
if CONFIG['MOZ_SYSTEM_PNG']:
OS_LIBS += CONFIG['MOZ_PNG_LIBS']
if CONFIG['MOZ_SYSTEM_HUNSPELL']:
OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']

View File

@ -1,8 +1,17 @@
Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc # HG changeset patch
=================================================================== # User Wolfgang Rosenauer <wr@rosenauer.org>
--- mozilla.orig/toolkit/crashreporter/google-breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc # Parent f6b8a48d89d77c7a3eb13fef234c618943306c2b
+++ mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc Replace struct ucontext with ucontext_t
@@ -40,15 +40,15 @@ namespace google_breakpad {
diff --git a/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.cc b/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.cc
--- a/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.cc
+++ b/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.cc
@@ -35,25 +35,25 @@
namespace google_breakpad {
// Minidump defines register structures which are different from the raw
// structures which we get from the kernel. These are platform specific
// functions to juggle the ucontext and user structures into minidump format.
#if defined(__i386__) #if defined(__i386__)
@ -21,7 +30,17 @@ Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/dump_write
const struct _libc_fpstate* fp) { const struct _libc_fpstate* fp) {
const greg_t* regs = uc->uc_mcontext.gregs; const greg_t* regs = uc->uc_mcontext.gregs;
@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawC out->context_flags = MD_CONTEXT_X86_FULL |
MD_CONTEXT_X86_FLOATING_POINT;
out->gs = regs[REG_GS];
out->fs = regs[REG_FS];
@@ -83,25 +83,25 @@ void UContextReader::FillCPUContext(RawC
out->float_save.data_selector = fp->datasel;
// 8 registers * 10 bytes per register.
my_memcpy(out->float_save.register_area, fp->_st, 10 * 8);
}
#elif defined(__x86_64) #elif defined(__x86_64)
@ -40,7 +59,17 @@ Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/dump_write
const struct _libc_fpstate* fpregs) { const struct _libc_fpstate* fpregs) {
const greg_t* regs = uc->uc_mcontext.gregs; const greg_t* regs = uc->uc_mcontext.gregs;
@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawC out->context_flags = MD_CONTEXT_AMD64_FULL;
out->cs = regs[REG_CSGSFS] & 0xffff;
out->fs = (regs[REG_CSGSFS] >> 32) & 0xffff;
@@ -140,25 +140,25 @@ void UContextReader::FillCPUContext(RawC
out->flt_save.mx_csr = fpregs->mxcsr;
out->flt_save.mx_csr_mask = fpregs->mxcr_mask;
my_memcpy(&out->flt_save.float_registers, &fpregs->_st, 8 * 16);
my_memcpy(&out->flt_save.xmm_registers, &fpregs->_xmm, 16 * 16);
}
#elif defined(__ARM_EABI__) #elif defined(__ARM_EABI__)
@ -59,7 +88,17 @@ Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/dump_write
out->context_flags = MD_CONTEXT_ARM_FULL; out->context_flags = MD_CONTEXT_ARM_FULL;
out->iregs[0] = uc->uc_mcontext.arm_r0; out->iregs[0] = uc->uc_mcontext.arm_r0;
@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawC out->iregs[1] = uc->uc_mcontext.arm_r1;
out->iregs[2] = uc->uc_mcontext.arm_r2;
out->iregs[3] = uc->uc_mcontext.arm_r3;
out->iregs[4] = uc->uc_mcontext.arm_r4;
out->iregs[5] = uc->uc_mcontext.arm_r5;
@@ -179,25 +179,25 @@ void UContextReader::FillCPUContext(RawC
// TODO: fix this after fixing ExceptionHandler
out->float_save.fpscr = 0;
my_memset(&out->float_save.regs, 0, sizeof(out->float_save.regs));
my_memset(&out->float_save.extra, 0, sizeof(out->float_save.extra));
}
#elif defined(__aarch64__) #elif defined(__aarch64__)
@ -78,7 +117,17 @@ Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/dump_write
const struct fpsimd_context* fpregs) { const struct fpsimd_context* fpregs) {
out->context_flags = MD_CONTEXT_ARM64_FULL; out->context_flags = MD_CONTEXT_ARM64_FULL;
@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawC out->cpsr = static_cast<uint32_t>(uc->uc_mcontext.pstate);
for (int i = 0; i < MD_CONTEXT_ARM64_REG_SP; ++i)
out->iregs[i] = uc->uc_mcontext.regs[i];
out->iregs[MD_CONTEXT_ARM64_REG_SP] = uc->uc_mcontext.sp;
out->iregs[MD_CONTEXT_ARM64_REG_PC] = uc->uc_mcontext.pc;
@@ -205,25 +205,25 @@ void UContextReader::FillCPUContext(RawC
out->float_save.fpsr = fpregs->fpsr;
out->float_save.fpcr = fpregs->fpcr;
my_memcpy(&out->float_save.regs, &fpregs->vregs,
MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT * 16);
}
#elif defined(__mips__) #elif defined(__mips__)
@ -97,11 +146,20 @@ Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/dump_write
#if _MIPS_SIM == _ABI64 #if _MIPS_SIM == _ABI64
out->context_flags = MD_CONTEXT_MIPS64_FULL; out->context_flags = MD_CONTEXT_MIPS64_FULL;
#elif _MIPS_SIM == _ABIO32 #elif _MIPS_SIM == _ABIO32
Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/dump_writer_common/ucontext_reader.h out->context_flags = MD_CONTEXT_MIPS_FULL;
=================================================================== #else
--- mozilla.orig/toolkit/crashreporter/google-breakpad/src/client/linux/dump_writer_common/ucontext_reader.h #error "This mips ABI is currently not supported (n32)"
+++ mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/dump_writer_common/ucontext_reader.h #endif
@@ -41,21 +41,21 @@ namespace google_breakpad {
diff --git a/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.h b/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.h
--- a/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.h
+++ b/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.h
@@ -36,29 +36,29 @@
#include "linux/dump_writer_common/raw_context_cpu.h"
#include "common/memory.h"
#include "google_breakpad/common/minidump_format.h"
namespace google_breakpad {
// Wraps platform-dependent implementations of accessors to ucontext structs. // Wraps platform-dependent implementations of accessors to ucontext structs.
struct UContextReader { struct UContextReader {
@ -128,11 +186,18 @@ Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/dump_write
#endif #endif
}; };
Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.cc } // namespace google_breakpad
===================================================================
--- mozilla.orig/toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.cc #endif // CLIENT_LINUX_DUMP_WRITER_COMMON_UCONTEXT_READER_H
+++ mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.cc diff --git a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc
@@ -439,9 +439,9 @@ bool ExceptionHandler::HandleSignal(int --- a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc
+++ b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc
@@ -434,30 +434,30 @@ bool ExceptionHandler::HandleSignal(int
info->si_code == SI_TKILL;
if (signal_trusted || (signal_pid_trusted && info->si_pid == getpid())) {
sys_prctl(PR_SET_DUMPABLE, 1, 0, 0, 0);
}
// Fill in all the holes in the struct to make Valgrind happy. // Fill in all the holes in the struct to make Valgrind happy.
memset(&g_crash_context_, 0, sizeof(g_crash_context_)); memset(&g_crash_context_, 0, sizeof(g_crash_context_));
memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t)); memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t));
@ -144,7 +209,10 @@ Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/handler/ex
struct fpsimd_context* fp_ptr = struct fpsimd_context* fp_ptr =
(struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved; (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
if (fp_ptr->head.magic == FPSIMD_MAGIC) { if (fp_ptr->head.magic == FPSIMD_MAGIC) {
@@ -452,7 +452,7 @@ bool ExceptionHandler::HandleSignal(int memcpy(&g_crash_context_.float_state, fp_ptr,
sizeof(g_crash_context_.float_state));
}
#elif !defined(__ARM_EABI__) && !defined(__mips__)
// FP state is not part of user ABI on ARM Linux. // FP state is not part of user ABI on ARM Linux.
// In case of MIPS Linux FP state is already part of struct ucontext // In case of MIPS Linux FP state is already part of struct ucontext
// and 'float_state' is not a member of CrashContext. // and 'float_state' is not a member of CrashContext.
@ -153,7 +221,17 @@ Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/handler/ex
if (uc_ptr->uc_mcontext.fpregs) { if (uc_ptr->uc_mcontext.fpregs) {
memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs, memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs,
sizeof(g_crash_context_.float_state)); sizeof(g_crash_context_.float_state));
@@ -476,7 +476,7 @@ bool ExceptionHandler::SimulateSignalDel }
#endif
g_crash_context_.tid = syscall(__NR_gettid);
if (crash_handler_ != NULL) {
if (crash_handler_(&g_crash_context_, sizeof(g_crash_context_),
@@ -471,17 +471,17 @@ bool ExceptionHandler::HandleSignal(int
// This is a public interface to HandleSignal that allows the client to
// generate a crash dump. This function may run in a compromised context.
bool ExceptionHandler::SimulateSignalDelivery(int sig) {
siginfo_t siginfo = {};
// Mimic a trusted signal to allow tracing the process (see
// ExceptionHandler::HandleSignal(). // ExceptionHandler::HandleSignal().
siginfo.si_code = SI_USER; siginfo.si_code = SI_USER;
siginfo.si_pid = getpid(); siginfo.si_pid = getpid();
@ -162,11 +240,20 @@ Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/handler/ex
getcontext(&context); getcontext(&context);
return HandleSignal(sig, &siginfo, &context); return HandleSignal(sig, &siginfo, &context);
} }
Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.h
=================================================================== // This function may run in a compromised context: see the top of the file.
--- mozilla.orig/toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.h bool ExceptionHandler::GenerateDump(CrashContext *context) {
+++ mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.h if (IsOutOfProcess())
@@ -191,7 +191,7 @@ class ExceptionHandler { return crash_generation_client_->RequestDump(context, sizeof(*context));
diff --git a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.h b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.h
--- a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.h
+++ b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.h
@@ -186,17 +186,17 @@ class ExceptionHandler {
MinidumpCallback callback,
void* callback_context);
// This structure is passed to minidump_writer.h:WriteMinidump via an opaque
// blob. It shouldn't be needed in any user code.
struct CrashContext { struct CrashContext {
siginfo_t siginfo; siginfo_t siginfo;
pid_t tid; // the crashing thread. pid_t tid; // the crashing thread.
@ -175,11 +262,20 @@ Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/handler/ex
#if !defined(__ARM_EABI__) && !defined(__mips__) #if !defined(__ARM_EABI__) && !defined(__mips__)
// #ifdef this out because FP state is not part of user ABI for Linux ARM. // #ifdef this out because FP state is not part of user ABI for Linux ARM.
// In case of MIPS Linux FP state is already part of struct // In case of MIPS Linux FP state is already part of struct
Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/microdump_writer/microdump_writer.cc // ucontext so 'float_state' is not required.
=================================================================== fpstate_t float_state;
--- mozilla.orig/toolkit/crashreporter/google-breakpad/src/client/linux/microdump_writer/microdump_writer.cc #endif
+++ mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/microdump_writer/microdump_writer.cc };
@@ -571,7 +571,7 @@ class MicrodumpWriter {
diff --git a/toolkit/crashreporter/breakpad-client/linux/microdump_writer/microdump_writer.cc b/toolkit/crashreporter/breakpad-client/linux/microdump_writer/microdump_writer.cc
--- a/toolkit/crashreporter/breakpad-client/linux/microdump_writer/microdump_writer.cc
+++ b/toolkit/crashreporter/breakpad-client/linux/microdump_writer/microdump_writer.cc
@@ -566,17 +566,17 @@ class MicrodumpWriter {
++iter) {
DumpModule(iter->first, false, 0, iter->second);
}
return true;
}
void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); } void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
@ -188,11 +284,20 @@ Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/microdump_
#if !defined(__ARM_EABI__) && !defined(__mips__) #if !defined(__ARM_EABI__) && !defined(__mips__)
const google_breakpad::fpstate_t* const float_state_; const google_breakpad::fpstate_t* const float_state_;
#endif #endif
Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer/minidump_writer.cc LinuxDumper* dumper_;
=================================================================== const MappingList& mapping_list_;
--- mozilla.orig/toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer/minidump_writer.cc const MicrodumpExtraInfo microdump_extra_info_;
+++ mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer/minidump_writer.cc char* log_line_;
@@ -1247,7 +1247,7 @@ class MinidumpWriter { };
diff --git a/toolkit/crashreporter/breakpad-client/linux/minidump_writer/minidump_writer.cc b/toolkit/crashreporter/breakpad-client/linux/minidump_writer/minidump_writer.cc
--- a/toolkit/crashreporter/breakpad-client/linux/minidump_writer/minidump_writer.cc
+++ b/toolkit/crashreporter/breakpad-client/linux/minidump_writer/minidump_writer.cc
@@ -1242,17 +1242,17 @@ class MinidumpWriter {
return false;
return WriteFile(result, buf);
}
// Only one of the 2 member variables below should be set to a valid value.
const int fd_; // File descriptor where the minidum should be written. const int fd_; // File descriptor where the minidum should be written.
const char* path_; // Path to the file where the minidum should be written. const char* path_; // Path to the file where the minidum should be written.
@ -201,3 +306,8 @@ Index: mozilla/toolkit/crashreporter/google-breakpad/src/client/linux/minidump_w
#if !defined(__ARM_EABI__) && !defined(__mips__) #if !defined(__ARM_EABI__) && !defined(__mips__)
const google_breakpad::fpstate_t* const float_state_; // ditto const google_breakpad::fpstate_t* const float_state_; // ditto
#endif #endif
LinuxDumper* dumper_;
MinidumpFileWriter minidump_writer_;
off_t minidump_size_limit_;
MDLocationDescriptor crashing_thread_context_;
// Blocks of memory written to the dump. These are all currently

View File

@ -102,6 +102,10 @@ fi
# disable Gnome crash dialog (doesn't make sense anyway) # disable Gnome crash dialog (doesn't make sense anyway)
export GNOME_DISABLE_CRASH_DIALOG=1 export GNOME_DISABLE_CRASH_DIALOG=1
# enable xinput2 (boo#1032003)
# breaks too many things right now (boo#1053959)
#export MOZ_USE_XINPUT2=1
moz_debug=0 moz_debug=0
script_args="" script_args=""
pass_arg_count=0 pass_arg_count=0

View File

@ -1,2 +1,2 @@
REV=20a1a6ad46d5 REV=10a244c0f835
REPO=http://hg.mozilla.org/releases/mozilla-esr52 REPO=http://hg.mozilla.org/releases/mozilla-release