forked from pool/MozillaFirefox
- update to Firefox 41.0 (bnc#)
- rebased patches - removed obsolete patches * mozilla-arm64-libjpeg-turbo.patch OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=458
This commit is contained in:
parent
97ab9cb840
commit
7ffa28996e
@ -1,18 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 27 06:03:51 UTC 2015 - wr@rosenauer.org
|
||||
Sat Sep 19 20:23:29 UTC 2015 - wr@rosenauer.org
|
||||
|
||||
- update to Firefox 40.0.3 (bnc#943550)
|
||||
* Disable the asynchronous plugin initialization (bmo#1198590)
|
||||
* Fix a segmentation fault in the GStreamer support (bmo#1145230)
|
||||
* Fix a regression with some Japanese fonts used in the <input>
|
||||
field (bmo#1194055)
|
||||
* On some sites, the selection in a select combox box using the
|
||||
mouse could be broken (bmo#1194733)
|
||||
security fixes
|
||||
* MFSA 2015-94/CVE-2015-4497 (bmo#1164766, bmo#1175278)
|
||||
Use-after-free when resizing canvas element during restyling
|
||||
* MFSA 2015-95/CVE-2015-4498 (bmo#1042699)
|
||||
Add-on notification bypass through data URLs
|
||||
- update to Firefox 41.0 (bnc#)
|
||||
- rebased patches
|
||||
- removed obsolete patches
|
||||
* mozilla-arm64-libjpeg-turbo.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 7 07:49:49 UTC 2015 - wr@rosenauer.org
|
||||
|
@ -18,10 +18,10 @@
|
||||
|
||||
|
||||
# changed with every update
|
||||
%define major 40
|
||||
%define mainver %major.0.3
|
||||
%define major 41
|
||||
%define mainver %major.0
|
||||
%define update_channel release
|
||||
%define releasedate 2015082600
|
||||
%define releasedate 2015091800
|
||||
|
||||
# general build definitions
|
||||
%if "%{update_channel}" != "aurora"
|
||||
@ -146,8 +146,7 @@ Patch11: mozilla-arm-disable-edsp.patch
|
||||
Patch12: mozilla-openaes-decl.patch
|
||||
Patch14: mozilla-skia-be-le.patch
|
||||
Patch15: mozilla-bmo1005535.patch
|
||||
Patch16: mozilla-arm64-libjpeg-turbo.patch
|
||||
Patch17: mozilla-no-stdcxx-check.patch
|
||||
Patch16: mozilla-no-stdcxx-check.patch
|
||||
# Firefox/browser
|
||||
Patch101: firefox-kde.patch
|
||||
Patch102: firefox-no-default-ualocale.patch
|
||||
@ -261,7 +260,6 @@ cd $RPM_BUILD_DIR/mozilla
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
# Firefox
|
||||
%patch101 -p1
|
||||
%patch102 -p1
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4212c9293d8e7e44579b557f631ca452d85cb28df4ea9e87c4dda3eaebeb64e2
|
||||
size 28424
|
||||
oid sha256:7bf01b5736a498d49a3c5a09b5791f47a1399fcfa42d2a64fc8f23e405e02e72
|
||||
size 28416
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
CHANNEL="release"
|
||||
BRANCH="releases/mozilla-$CHANNEL"
|
||||
RELEASE_TAG="FIREFOX_40_0_3_RELEASE"
|
||||
VERSION="40.0.3"
|
||||
RELEASE_TAG="FIREFOX_41_0_RELEASE"
|
||||
VERSION="41.0"
|
||||
|
||||
# mozilla
|
||||
if [ -d mozilla ]; then
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4be159f556c5c151e39fb4a8f9f346f453f57d8921d0eba03115798348496dc4
|
||||
size 152796164
|
3
firefox-41.0-source.tar.xz
Normal file
3
firefox-41.0-source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4150c3ddb79bf4e97d7c7ff953376b8d0aa2bdc195d0d8dba0b65cfb7e22158f
|
||||
size 168011256
|
@ -1,11 +1,11 @@
|
||||
# HG changeset patch
|
||||
# Parent c6048238765dab77cd0c9a45e7afb1157316938b
|
||||
# Parent 8d1e0e3997402b94742eded6477abed4b559f373
|
||||
|
||||
diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/browser/base/content/browser-kde.xul
|
||||
@@ -0,0 +1,1314 @@
|
||||
@@ -0,0 +1,1264 @@
|
||||
+#filter substitution
|
||||
+<?xml version="1.0"?>
|
||||
+# -*- Mode: HTML -*-
|
||||
@ -17,6 +17,7 @@ new file mode 100644
|
||||
+<?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/skin/devtools/common.css" type="text/css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/skin/controlcenter/panel.css" type="text/css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/skin/customizableui/panelUIOverlay.css" type="text/css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
|
||||
+<?xml-stylesheet href="chrome://browser/skin/browser-lightweightTheme.css" type="text/css"?>
|
||||
@ -159,7 +160,11 @@ new file mode 100644
|
||||
+ work correctly on the menupopup. ContentSelectDropdown expects the
|
||||
+ popuponly menulist to be its immediate parent. -->
|
||||
+ <menulist popuponly="true" id="ContentSelectDropdown" hidden="true">
|
||||
+ <menupopup rolluponmousewheel="true"/>
|
||||
+ <menupopup rolluponmousewheel="true"
|
||||
+#ifdef XP_WIN
|
||||
+ consumeoutsideclicks="false"
|
||||
+#endif
|
||||
+ />
|
||||
+ </menulist>
|
||||
+
|
||||
+ <!-- for invalid form error message -->
|
||||
@ -414,67 +419,6 @@ new file mode 100644
|
||||
+
|
||||
+ <menupopup id="placesContext"/>
|
||||
+
|
||||
+ <!-- Popup for site identity information -->
|
||||
+ <panel id="identity-popup"
|
||||
+ type="arrow"
|
||||
+ hidden="true"
|
||||
+ noautofocus="true"
|
||||
+ onpopupshown="if (event.target == this)
|
||||
+ gIdentityHandler.onPopupShown(event);"
|
||||
+ orient="vertical"
|
||||
+ level="top">
|
||||
+ <hbox id="identity-popup-container" align="top">
|
||||
+ <image id="identity-popup-icon"/>
|
||||
+ <vbox id="identity-popup-content-box">
|
||||
+ <label id="identity-popup-brandName"
|
||||
+ class="identity-popup-label"
|
||||
+ value="&brandFullName;"/>
|
||||
+ <label id="identity-popup-chromeLabel"
|
||||
+ class="identity-popup-label"/>
|
||||
+ <label id="identity-popup-connectedToLabel"
|
||||
+ class="identity-popup-label"
|
||||
+ value="&identity.connectedTo;"/>
|
||||
+ <label id="identity-popup-connectedToLabel2"
|
||||
+ class="identity-popup-label"
|
||||
+ value="&identity.unverifiedsite2;"/>
|
||||
+ <description id="identity-popup-content-host"
|
||||
+ class="identity-popup-description"/>
|
||||
+ <label id="identity-popup-runByLabel"
|
||||
+ class="identity-popup-label"
|
||||
+ value="&identity.runBy;"/>
|
||||
+ <description id="identity-popup-content-owner"
|
||||
+ class="identity-popup-description"/>
|
||||
+ <description id="identity-popup-content-supplemental"
|
||||
+ class="identity-popup-description"/>
|
||||
+ <description id="identity-popup-content-verifier"
|
||||
+ class="identity-popup-description"/>
|
||||
+ <hbox id="identity-popup-encryption" flex="1">
|
||||
+ <vbox>
|
||||
+ <image id="identity-popup-encryption-icon"/>
|
||||
+ </vbox>
|
||||
+ <description id="identity-popup-encryption-label" flex="1"
|
||||
+ class="identity-popup-description"/>
|
||||
+ </hbox>
|
||||
+ <vbox id="identity-popup-permissions">
|
||||
+ <separator class="thin"/>
|
||||
+ <label class="identity-popup-label header"
|
||||
+ value="&identity.permissions;"/>
|
||||
+ <vbox id="identity-popup-permission-list" class="indent"/>
|
||||
+ </vbox>
|
||||
+ </vbox>
|
||||
+ </hbox>
|
||||
+ <!-- Footer button to open security page info -->
|
||||
+ <hbox id="identity-popup-button-container" align="center">
|
||||
+ <button id="identity-popup-help-icon"
|
||||
+ oncommand="gIdentityHandler.handleHelpCommand(event);"
|
||||
+ tooltiptext="&identity.help.tooltip;"/>
|
||||
+ <spacer flex="1"/>
|
||||
+ <button id="identity-popup-more-info-button"
|
||||
+ label="&identity.moreInfoLinkText;"
|
||||
+ oncommand="gIdentityHandler.handleMoreInfoClick(event);"/>
|
||||
+ </hbox>
|
||||
+ </panel>
|
||||
+
|
||||
+ <panel id="ctrlTab-panel" class="KUI-panel" hidden="true" norestorefocus="true" level="top">
|
||||
+ <hbox>
|
||||
+ <button class="ctrlTab-preview" flex="1"/>
|
||||
@ -557,6 +501,7 @@ new file mode 100644
|
||||
+#include popup-notifications.inc
|
||||
+
|
||||
+#include ../../components/customizableui/content/panelUI.inc.xul
|
||||
+#include ../../components/controlcenter/content/panel.inc.xul
|
||||
+
|
||||
+ <hbox id="downloads-animation-container" mousethrough="always">
|
||||
+ <vbox id="downloads-notification-anchor">
|
||||
@ -791,6 +736,7 @@ new file mode 100644
|
||||
+ <image id="push-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
+ <image id="addons-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
+ <image id="indexedDB-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
+ <image id="login-fill-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
+ <image id="password-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
+ <image id="webapps-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
+ <image id="plugins-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
@ -883,6 +829,8 @@ new file mode 100644
|
||||
+ ondrop="PlacesMenuDNDHandler.onDrop(event);"
|
||||
+ cui-areatype="toolbar"
|
||||
+ oncommand="BookmarkingUI.onCommand(event);">
|
||||
+ <observes element="bookmarkThisPageBroadcaster" attribute="starred"/>
|
||||
+ <observes element="bookmarkThisPageBroadcaster" attribute="buttontooltiptext"/>
|
||||
+ <menupopup id="BMB_bookmarksPopup"
|
||||
+ class="cui-widget-panel cui-widget-panelview cui-widget-panelWithFooter PanelUI-subView"
|
||||
+ placespopup="true"
|
||||
@ -1230,6 +1178,8 @@ new file mode 100644
|
||||
+ <browser id="social-sidebar-browser"
|
||||
+ type="content"
|
||||
+ context="contentAreaContextMenu"
|
||||
+ message="true"
|
||||
+ messagemanagergroup="social"
|
||||
+ disableglobalhistory="true"
|
||||
+ tooltip="aHTMLTooltip"
|
||||
+ popupnotificationanchor="social-sidebar-favico"
|
||||
@ -1323,7 +1273,7 @@ new file mode 100644
|
||||
diff --git a/browser/base/content/browser.xul b/browser/base/content/browser.xul
|
||||
--- a/browser/base/content/browser.xul
|
||||
+++ b/browser/base/content/browser.xul
|
||||
@@ -179,17 +179,17 @@
|
||||
@@ -184,17 +184,17 @@
|
||||
class="editBookmarkPanelHeaderButton"
|
||||
oncommand="StarUI.removeBookmarkButtonCommand();"
|
||||
accesskey="&editBookmark.removeBookmark.accessKey;"/>
|
||||
@ -1342,7 +1292,7 @@ diff --git a/browser/base/content/browser.xul b/browser/base/content/browser.xul
|
||||
<button id="editBookmarkPanelDeleteButton"
|
||||
class="editBookmarkPanelBottomButton"
|
||||
label="&editBookmark.cancel.label;"
|
||||
@@ -1235,17 +1235,17 @@
|
||||
@@ -1185,17 +1185,17 @@
|
||||
|
||||
<hbox id="full-screen-warning-container" hidden="true" fadeout="true">
|
||||
<hbox style="width: 100%;" pack="center"> <!-- Inner hbox needed due to bug 579776. -->
|
||||
@ -1375,14 +1325,14 @@ diff --git a/browser/base/jar.mn b/browser/base/jar.mn
|
||||
* content/browser/browser.xul (content/browser.xul)
|
||||
+* content/browser/browser-kde.xul (content/browser-kde.xul)
|
||||
+% override chrome://browser/content/browser.xul chrome://browser/content/browser-kde.xul desktop=kde
|
||||
content/browser/browser-pocket-en-US.properties (content/browser-pocket-en-US.properties)
|
||||
content/browser/browser-pocket.dtd (content/browser-pocket.dtd)
|
||||
content/browser/browser-pocket-de.properties (content/browser-pocket-de.properties)
|
||||
content/browser/browser-pocket-es-ES.properties (content/browser-pocket-es-ES.properties)
|
||||
content/browser/browser-pocket-ja.properties (content/browser-pocket-ja.properties)
|
||||
content/browser/browser-pocket-ru.properties (content/browser-pocket-ru.properties)
|
||||
* content/browser/browser-tabPreviews.xml (content/browser-tabPreviews.xml)
|
||||
* content/browser/chatWindow.xul (content/chatWindow.xul)
|
||||
content/browser/tab-content.js (content/tab-content.js)
|
||||
content/browser/content.js (content/content.js)
|
||||
content/browser/social-content.js (content/social-content.js)
|
||||
content/browser/defaultthemes/1.footer.jpg (content/defaultthemes/1.footer.jpg)
|
||||
content/browser/defaultthemes/1.header.jpg (content/defaultthemes/1.header.jpg)
|
||||
content/browser/defaultthemes/1.icon.jpg (content/defaultthemes/1.icon.jpg)
|
||||
diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp
|
||||
--- a/browser/components/build/nsModule.cpp
|
||||
+++ b/browser/components/build/nsModule.cpp
|
||||
@ -1469,7 +1419,7 @@ diff --git a/browser/components/preferences/main.js b/browser/components/prefere
|
||||
// when the user will select the default. We refresh here periodically
|
||||
// in case the default changes. On other Windows OS's defaults can also
|
||||
// be set while the prefs are open.
|
||||
@@ -524,16 +530,27 @@ var gMainPane = {
|
||||
@@ -527,16 +533,27 @@ var gMainPane = {
|
||||
*/
|
||||
setDefaultBrowser: function()
|
||||
{
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dde30019e1f4cd7dc5c0071ceb656e7c82192cb09beff8dcd4f10fdd868dd30c
|
||||
size 42258496
|
3
l10n-41.0.tar.xz
Normal file
3
l10n-41.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1ba052c63d0a01d91f92e7710d5e228ab980f1f90e5fbf67f779ff98095fafb1
|
||||
size 42518620
|
@ -1,37 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent af95b352f0be4eb2e337867450f25f4c2456a47f
|
||||
|
||||
diff --git a/configure.in b/configure.in
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -6202,27 +6202,29 @@ if test -n "$LIBJPEG_TURBO_X86_ASM" -o -
|
||||
if test "$_YASM_MAJOR_VERSION" -lt "1" -o \( "$_YASM_MAJOR_VERSION" -eq "1" -a "$_YASM_MINOR_VERSION" -lt "1" \) ; then
|
||||
AC_MSG_ERROR([Yasm 1.1 or greater is required to build with libjpeg-turbo's optimized JPEG decoding routines, but you appear to have version $_YASM_MAJOR_VERSION.$_YASM_MINOR_VERSION. Upgrade to the newest version or configure with --disable-libjpeg-turbo to use the pure C JPEG decoder. See https://developer.mozilla.org/en/YASM for more details.])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl If we're on an ARM system which supports libjpeg-turbo's asm routines and
|
||||
dnl --disable-libjpeg-turbo wasn't passed, use the C compiler as the assembler.
|
||||
-if test -n "$LIBJPEG_TURBO_ARM_ASM" ; then
|
||||
+if test -n "$LIBJPEG_TURBO_ARM_ASM" -o -n "$LIBJPEG_TURBO_ARM64_ASM" ; then
|
||||
echo "Using $AS as the assembler for ARM code."
|
||||
LIBJPEG_TURBO_AS=$AS
|
||||
fi
|
||||
|
||||
if test -n "$LIBJPEG_TURBO_X86_ASM"; then
|
||||
AC_DEFINE(LIBJPEG_TURBO_X86_ASM)
|
||||
elif test -n "$LIBJPEG_TURBO_X64_ASM"; then
|
||||
AC_DEFINE(LIBJPEG_TURBO_X64_ASM)
|
||||
elif test -n "$LIBJPEG_TURBO_ARM_ASM"; then
|
||||
AC_DEFINE(LIBJPEG_TURBO_ARM_ASM)
|
||||
+elif test -n "$LIBJPEG_TURBO_ARM64_ASM"; then
|
||||
+ AC_DEFINE(LIBJPEG_TURBO_ARM64_ASM)
|
||||
elif test -n "$MOZ_LIBJPEG_TURBO"; then
|
||||
dnl Warn if we're not building the optimized routines, even though the user
|
||||
dnl didn't specify --disable-libjpeg-turbo.
|
||||
AC_MSG_WARN([No assembler or assembly support for libjpeg-turbo. Using unoptimized C routines.])
|
||||
fi
|
||||
|
||||
dnl ========================================================
|
||||
dnl = Enable compilation of specific extension modules
|
@ -1,5 +1,5 @@
|
||||
# HG changeset patch
|
||||
# Parent 5f8cbb078ab0d5696255c2f514c6333666b47da9
|
||||
# Parent 3f3d1e5db92a45cf3758ee5ba77c577fcfb364c9
|
||||
Description: Add KDE integration to Firefox (toolkit parts)
|
||||
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
|
||||
Author: Lubos Lunak <lunak@suse.com>
|
||||
@ -46,7 +46,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
#include "prefread.h"
|
||||
#include "prefapi_private_data.h"
|
||||
|
||||
@@ -1154,16 +1155,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
|
||||
@@ -1153,16 +1154,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
|
||||
|
||||
static nsresult pref_LoadPrefsInDirList(const char *listId)
|
||||
{
|
||||
@ -81,7 +81,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
return NS_OK;
|
||||
|
||||
bool hasMore;
|
||||
@@ -1179,17 +1198,17 @@ static nsresult pref_LoadPrefsInDirList(
|
||||
@@ -1178,17 +1197,17 @@ static nsresult pref_LoadPrefsInDirList(
|
||||
|
||||
nsAutoCString leaf;
|
||||
path->GetNativeLeafName(leaf);
|
||||
@ -100,7 +100,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
{
|
||||
nsZipItemPtr<char> manifest(jarReader, name, true);
|
||||
NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
|
||||
@@ -1283,26 +1302,38 @@ static nsresult pref_InitInitialObjects(
|
||||
@@ -1282,26 +1301,38 @@ static nsresult pref_InitInitialObjects(
|
||||
/* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
|
||||
static const char* specialFiles[] = {
|
||||
#if defined(XP_MACOSX)
|
||||
@ -142,7 +142,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py
|
||||
--- a/python/mozbuild/mozpack/chrome/flags.py
|
||||
+++ b/python/mozbuild/mozpack/chrome/flags.py
|
||||
@@ -209,16 +209,17 @@ class Flags(OrderedDict):
|
||||
@@ -211,16 +211,17 @@ class Flags(OrderedDict):
|
||||
'contentaccessible': Flag,
|
||||
'os': StringFlag,
|
||||
'osversion': VersionFlag,
|
||||
@ -163,7 +163,7 @@ diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/c
|
||||
diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py
|
||||
--- a/python/mozbuild/mozpack/chrome/manifest.py
|
||||
+++ b/python/mozbuild/mozpack/chrome/manifest.py
|
||||
@@ -31,16 +31,17 @@ class ManifestEntry(object):
|
||||
@@ -33,16 +33,17 @@ class ManifestEntry(object):
|
||||
'application',
|
||||
'platformversion',
|
||||
'os',
|
||||
@ -184,7 +184,7 @@ diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpac
|
||||
diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build
|
||||
--- a/toolkit/components/downloads/moz.build
|
||||
+++ b/toolkit/components/downloads/moz.build
|
||||
@@ -67,14 +67,15 @@ if not CONFIG['MOZ_SUITE']:
|
||||
@@ -67,15 +67,16 @@ if not CONFIG['MOZ_SUITE']:
|
||||
]
|
||||
|
||||
FAIL_ON_WARNINGS = True
|
||||
@ -199,6 +199,7 @@ diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloa
|
||||
]
|
||||
|
||||
DEFINES['GOOGLE_PROTOBUF_NO_RTTI'] = True
|
||||
DEFINES['GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER'] = True
|
||||
|
||||
CXXFLAGS += CONFIG['TK_CFLAGS']
|
||||
diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp
|
||||
@ -775,7 +776,7 @@ diff --git a/toolkit/content/widgets/preferences-kde.xml b/toolkit/content/widge
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/toolkit/content/widgets/preferences-kde.xml
|
||||
@@ -0,0 +1,1357 @@
|
||||
@@ -0,0 +1,1403 @@
|
||||
+<?xml version="1.0"?>
|
||||
+
|
||||
+<!DOCTYPE bindings [
|
||||
@ -1961,6 +1962,10 @@ new file mode 100644
|
||||
+ <body>
|
||||
+ <![CDATA[
|
||||
+ // Write all values to preferences.
|
||||
+ if (this._deferredValueUpdateElements.size) {
|
||||
+ this._finalizeDeferredElements();
|
||||
+ }
|
||||
+
|
||||
+ var preferences = this.preferences;
|
||||
+ for (var i = 0; i < preferences.length; ++i) {
|
||||
+ var preference = preferences[i];
|
||||
@ -2037,15 +2042,57 @@ new file mode 100644
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+ <field name="DeferredTask" readonly="true">
|
||||
+ let targetObj = {};
|
||||
+ Components.utils.import("resource://gre/modules/DeferredTask.jsm", targetObj);
|
||||
+ targetObj.DeferredTask;
|
||||
+ </field>
|
||||
+ <method name="_deferredValueUpdate">
|
||||
+ <parameter name="aElement"/>
|
||||
+ <body>
|
||||
+ <![CDATA[
|
||||
+ delete aElement._deferredValueUpdateTask;
|
||||
+ let preference = document.getElementById(aElement.getAttribute("preference"));
|
||||
+ let prefVal = preference.getElementValue(aElement);
|
||||
+ preference.value = prefVal;
|
||||
+ this._deferredValueUpdateElements.delete(aElement);
|
||||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+ <field name="_deferredValueUpdateElements">
|
||||
+ new Set();
|
||||
+ </field>
|
||||
+ <method name="_finalizeDeferredElements">
|
||||
+ <body>
|
||||
+ <![CDATA[
|
||||
+ for (let el of this._deferredValueUpdateElements) {
|
||||
+ if (el._deferredValueUpdateTask) {
|
||||
+ el._deferredValueUpdateTask.finalize();
|
||||
+ }
|
||||
+ }
|
||||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+ <method name="userChangedValue">
|
||||
+ <parameter name="aElement"/>
|
||||
+ <body>
|
||||
+ <![CDATA[
|
||||
+ var element = this.getPreferenceElement(aElement);
|
||||
+ let element = this.getPreferenceElement(aElement);
|
||||
+ if (element.hasAttribute("preference")) {
|
||||
+ if (element.getAttribute("delayprefsave") != "true") {
|
||||
+ var preference = document.getElementById(element.getAttribute("preference"));
|
||||
+ var prefVal = preference.getElementValue(element);
|
||||
+ preference.value = prefVal;
|
||||
+ } else {
|
||||
+ if (!element._deferredValueUpdateTask) {
|
||||
+ element._deferredValueUpdateTask = new this.DeferredTask(this._deferredValueUpdate.bind(this, element), 1000);
|
||||
+ this._deferredValueUpdateElements.add(element);
|
||||
+ } else {
|
||||
+ // Each time the preference is changed, restart the delay.
|
||||
+ element._deferredValueUpdateTask.disarm();
|
||||
+ }
|
||||
+ element._deferredValueUpdateTask.arm();
|
||||
+ }
|
||||
+ }
|
||||
+ ]]>
|
||||
+ </body>
|
||||
@ -2230,11 +2277,11 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
|
||||
diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
|
||||
--- a/toolkit/xre/moz.build
|
||||
+++ b/toolkit/xre/moz.build
|
||||
@@ -45,17 +45,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt
|
||||
GENERATED_SOURCES += [
|
||||
'moc_nsNativeAppSupportQt.cpp',
|
||||
]
|
||||
@@ -43,17 +43,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
|
||||
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
|
||||
EXPORTS += ['nsQAppInstance.h']
|
||||
SOURCES += [
|
||||
'!moc_nsNativeAppSupportQt.cpp',
|
||||
'nsNativeAppSupportQt.cpp',
|
||||
'nsQAppInstance.cpp',
|
||||
]
|
||||
@ -3106,7 +3153,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
|
||||
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
|
||||
--- a/widget/gtk/moz.build
|
||||
+++ b/widget/gtk/moz.build
|
||||
@@ -79,16 +79,17 @@ else:
|
||||
@@ -80,16 +80,17 @@ else:
|
||||
include('/ipc/chromium/chromium-config.mozbuild')
|
||||
|
||||
FINAL_LIBRARY = 'xul'
|
||||
@ -3158,11 +3205,11 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
||||
using namespace mozilla;
|
||||
|
||||
#define MAX_PREVIEW_SIZE 180
|
||||
// bug 1184009
|
||||
#define MAX_PREVIEW_SOURCE_SIZE 4096
|
||||
|
||||
nsIFile *nsFilePicker::mPrevDisplayDirectory = nullptr;
|
||||
|
||||
void
|
||||
@@ -238,17 +240,19 @@ nsFilePicker::AppendFilters(int32_t aFil
|
||||
@@ -246,17 +248,19 @@ nsFilePicker::AppendFilters(int32_t aFil
|
||||
return nsBaseFilePicker::AppendFilters(aFilterMask);
|
||||
}
|
||||
|
||||
@ -3183,7 +3230,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
||||
|
||||
mFilters.AppendElement(filter);
|
||||
mFilterNames.AppendElement(name);
|
||||
@@ -363,16 +367,32 @@ nsFilePicker::Show(int16_t *aReturn)
|
||||
@@ -371,16 +375,32 @@ nsFilePicker::Show(int16_t *aReturn)
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
|
||||
@ -3216,7 +3263,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
||||
|
||||
GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
|
||||
const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE)
|
||||
@@ -551,8 +571,235 @@ nsFilePicker::Done(GtkWidget* file_choos
|
||||
@@ -595,8 +615,235 @@ nsFilePicker::Done(GtkWidget* file_choos
|
||||
if (mCallback) {
|
||||
mCallback->Done(result);
|
||||
mCallback = nullptr;
|
||||
@ -3455,8 +3502,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
||||
diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
|
||||
--- a/widget/gtk/nsFilePicker.h
|
||||
+++ b/widget/gtk/nsFilePicker.h
|
||||
@@ -68,11 +68,17 @@ protected:
|
||||
nsString mDefault;
|
||||
@@ -69,14 +69,20 @@ protected:
|
||||
nsString mDefaultExtension;
|
||||
|
||||
nsTArray<nsCString> mFilters;
|
||||
@ -3464,12 +3510,16 @@ diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
|
||||
|
||||
private:
|
||||
static nsIFile *mPrevDisplayDirectory;
|
||||
+
|
||||
|
||||
+ bool kdeRunning();
|
||||
+ bool getKdeRunning();
|
||||
+ NS_IMETHODIMP kdeFileDialog(PRInt16 *aReturn);
|
||||
+ NS_IMETHODIMP kdeAppsDialog(PRInt16 *aReturn);
|
||||
+ nsCString kdeMakeFilter( int index );
|
||||
+
|
||||
#if (MOZ_WIDGET_GTK == 3)
|
||||
GtkFileChooserWidget *mFileChooserDelegate;
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
||||
@ -3628,7 +3678,7 @@ diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build
|
||||
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
--- a/xpcom/io/nsLocalFileUnix.cpp
|
||||
+++ b/xpcom/io/nsLocalFileUnix.cpp
|
||||
@@ -44,16 +44,17 @@
|
||||
@@ -47,16 +47,17 @@
|
||||
#include "prproces.h"
|
||||
#include "nsIDirectoryEnumerator.h"
|
||||
#include "nsISimpleEnumerator.h"
|
||||
@ -3646,7 +3696,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
#include "prmem.h"
|
||||
#include "plbase64.h"
|
||||
|
||||
@@ -1960,42 +1961,52 @@ nsLocalFile::SetPersistentDescriptor(con
|
||||
@@ -1963,42 +1964,52 @@ nsLocalFile::SetPersistentDescriptor(con
|
||||
return InitWithNativePath(aPersistentDescriptor);
|
||||
#endif
|
||||
}
|
||||
@ -3705,7 +3755,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
return rv;
|
||||
}
|
||||
return NS_ERROR_FAILURE;
|
||||
@@ -2003,16 +2014,22 @@ nsLocalFile::Reveal()
|
||||
@@ -2006,16 +2017,22 @@ nsLocalFile::Reveal()
|
||||
return NS_ERROR_FAILURE;
|
||||
#endif
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent 7b3798afc391847b7eec89b3714b54f1bbbaa0a1
|
||||
# Parent af8fd72bd18717e6fc46340f467c7fa4f6d8c2ab
|
||||
|
||||
diff --git a/config/config.mk b/config/config.mk
|
||||
--- a/config/config.mk
|
||||
+++ b/config/config.mk
|
||||
@@ -623,34 +623,33 @@ EXPAND_LD = $(EXPAND_LIBS_EXEC) --uselis
|
||||
@@ -626,34 +626,33 @@ EXPAND_LD = $(EXPAND_LIBS_EXEC) --uselis
|
||||
EXPAND_MKSHLIB_ARGS = --uselist
|
||||
ifdef SYMBOL_ORDER
|
||||
EXPAND_MKSHLIB_ARGS += --symbol-order $(SYMBOL_ORDER)
|
||||
@ -14,8 +14,8 @@ diff --git a/config/config.mk b/config/config.mk
|
||||
|
||||
ifneq (,$(MOZ_LIBSTDCXX_TARGET_VERSION)$(MOZ_LIBSTDCXX_HOST_VERSION))
|
||||
ifneq ($(OS_ARCH),Darwin)
|
||||
-CHECK_STDCXX = @$(TOOLCHAIN_PREFIX)objdump -p $(1) | grep -e 'GLIBCXX_3\.4\.\(9\|[1-9][0-9]\)' > /dev/null && echo 'TEST-UNEXPECTED-FAIL | check_stdcxx | We do not want these libstdc++ symbols to be used:' && $(TOOLCHAIN_PREFIX)objdump -T $(1) | grep -e 'GLIBCXX_3\.4\.\(9\|[1-9][0-9]\)' && exit 1 || true
|
||||
+#CHECK_STDCXX = @$(TOOLCHAIN_PREFIX)objdump -p $(1) | grep -e 'GLIBCXX_3\.4\.\(9\|[1-9][0-9]\)' > /dev/null && echo 'TEST-UNEXPECTED-FAIL | check_stdcxx | We do not want these libstdc++ symbols to be used:' && $(TOOLCHAIN_PREFIX)objdump -T $(1) | grep -e 'GLIBCXX_3\.4\.\(9\|[1-9][0-9]\)' && exit 1 || true
|
||||
-CHECK_STDCXX = @$(TOOLCHAIN_PREFIX)objdump -p $(1) | grep -e 'GLIBCXX_3\.4\.\(1[1-9]\|[2-9][0-9]\)' > /dev/null && echo 'TEST-UNEXPECTED-FAIL | check_stdcxx | We do not want these libstdc++ symbols to be used:' && $(TOOLCHAIN_PREFIX)objdump -T $(1) | grep -e 'GLIBCXX_3\.4\.\(1[1-9]\|[2-9][0-9]\)' && exit 1 || true
|
||||
+#CHECK_STDCXX = @$(TOOLCHAIN_PREFIX)objdump -p $(1) | grep -e 'GLIBCXX_3\.4\.\(1[1-9]\|[2-9][0-9]\)' > /dev/null && echo 'TEST-UNEXPECTED-FAIL | check_stdcxx | We do not want these libstdc++ symbols to be used:' && $(TOOLCHAIN_PREFIX)objdump -T $(1) | grep -e 'GLIBCXX_3\.4\.\(1[1-9]\|[2-9][0-9]\)' && exit 1 || true
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
# HG changeset patch
|
||||
# Parent 33024abb3c58dab7239e32388df58e14f99defd5
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent 776cb894347a5ce8f03cd7344dca83b345e93d5f
|
||||
# Parent 17196b2f3cd2bcba6a5b54f4496b5762a593c5b3
|
||||
|
||||
diff --git a/media/gmp-clearkey/0.1/openaes/oaes_lib.c b/media/gmp-clearkey/0.1/openaes/oaes_lib.c
|
||||
--- a/media/gmp-clearkey/0.1/openaes/oaes_lib.c
|
||||
@ -20,7 +20,7 @@ diff --git a/media/gmp-clearkey/0.1/openaes/oaes_lib.c b/media/gmp-clearkey/0.1/
|
||||
#include <time.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "mozilla/Snprintf.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#include <process.h>
|
||||
#endif
|
||||
|
||||
|
@ -6,12 +6,12 @@ package unconditionally.
|
||||
|
||||
# HG changeset patch
|
||||
# Parent 8c1bfc96b05ef1836aad6e9f2af323f63ed1b69c
|
||||
# Parent 3de9f5c9ca0d23956f2580ad534ac139a63527a5
|
||||
# Parent 35b625807600ea4a5a3c49bd1cab22fac5188406
|
||||
|
||||
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
|
||||
--- a/modules/libpref/init/all.js
|
||||
+++ b/modules/libpref/init/all.js
|
||||
@@ -1770,17 +1770,17 @@ pref("converter.html2txt.always_include_
|
||||
@@ -1790,17 +1790,17 @@ pref("converter.html2txt.always_include_
|
||||
|
||||
pref("intl.accept_languages", "chrome://global/locale/intl.properties");
|
||||
pref("intl.menuitems.alwaysappendaccesskeys","chrome://global/locale/intl.properties");
|
||||
@ -28,5 +28,5 @@ diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
|
||||
pref("intl.fallbackCharsetList.ISO-8859-1", "windows-1252");
|
||||
pref("font.language.group", "chrome://global/locale/intl.properties");
|
||||
|
||||
// these locales have right-to-left UI
|
||||
pref("intl.uidirection.ar", "rtl");
|
||||
// Android-specific pref to use key-events-only mode for IME-unaware webapps.
|
||||
#ifdef MOZ_WIDGET_ANDROID
|
||||
|
@ -7,7 +7,7 @@ References:
|
||||
diff --git a/configure.in b/configure.in
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -8217,16 +8217,31 @@ if test "$MOZ_ENABLE_SKIA"; then
|
||||
@@ -8296,16 +8296,31 @@ if test "$MOZ_ENABLE_SKIA"; then
|
||||
MOZ_ENABLE_SKIA_GPU=1
|
||||
AC_DEFINE(USE_SKIA_GPU)
|
||||
AC_SUBST(MOZ_ENABLE_SKIA_GPU)
|
||||
@ -39,32 +39,32 @@ diff --git a/configure.in b/configure.in
|
||||
if test "$MOZ_XUL"; then
|
||||
AC_DEFINE(MOZ_XUL)
|
||||
else
|
||||
diff --git a/security/manager/ssl/src/moz.build b/security/manager/ssl/src/moz.build
|
||||
--- a/security/manager/ssl/src/moz.build
|
||||
+++ b/security/manager/ssl/src/moz.build
|
||||
@@ -81,16 +81,19 @@ SOURCES += [
|
||||
IPDL_SOURCES += [
|
||||
'PPSMContentDownloader.ipdl',
|
||||
]
|
||||
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
|
||||
@@ -156,16 +156,19 @@ FAIL_ON_WARNINGS = True
|
||||
FINAL_LIBRARY = 'xul'
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
'/security/manager/boot/src',
|
||||
'/dom/base',
|
||||
'/security/certverifier',
|
||||
'/security/pkix/include',
|
||||
]
|
||||
|
||||
+CXXFLAGS += sorted(CONFIG['NSSHELPER_CFLAGS'])
|
||||
+OS_LIBS += sorted(CONFIG['NSSHELPER_LIBS'])
|
||||
+
|
||||
if not CONFIG['MOZ_NO_SMART_CARDS']:
|
||||
UNIFIED_SOURCES += [
|
||||
'nsSmartCardMonitor.cpp',
|
||||
GENERATED_INCLUDES += [
|
||||
'/dist/public/nss',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_XUL']:
|
||||
UNIFIED_SOURCES += [
|
||||
'nsCertTree.cpp',
|
||||
diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/src/nsNSSComponent.cpp
|
||||
--- a/security/manager/ssl/src/nsNSSComponent.cpp
|
||||
+++ b/security/manager/ssl/src/nsNSSComponent.cpp
|
||||
if CONFIG['NSS_DISABLE_DBM']:
|
||||
DEFINES['NSS_DISABLE_DBM'] = '1'
|
||||
|
||||
DEFINES['SSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES'] = 'True'
|
||||
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 -*-
|
||||
*
|
||||
@ -87,16 +87,15 @@ diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/
|
||||
#include "nsAppDirectoryServiceDefs.h"
|
||||
#include "nsCertVerificationThread.h"
|
||||
#include "nsAppDirectoryServiceDefs.h"
|
||||
@@ -998,17 +1005,31 @@ nsNSSComponent::InitializeNSS()
|
||||
if (NS_FAILED(rv)) {
|
||||
nsPSMInitPanic::SetPanic();
|
||||
@@ -1015,17 +1022,31 @@ nsNSSComponent::InitializeNSS()
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
}
|
||||
|
||||
SECStatus init_rv = SECFailure;
|
||||
if (!profileStr.IsEmpty()) {
|
||||
bool nocertdb = Preferences::GetBool("security.nocertdb", false);
|
||||
|
||||
if (!nocertdb && !profileStr.IsEmpty()) {
|
||||
// First try to initialize the NSS DB in read/write mode.
|
||||
- SECStatus init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false);
|
||||
+#ifdef MOZ_ENABLE_NSSHELPER
|
||||
+ if (PR_GetEnv("MOZ_XRE_NO_NSSHELPER")) {
|
||||
+ init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false);
|
||||
@ -105,25 +104,25 @@ diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/
|
||||
+ init_rv = ::nsshelp_open_db ("Firefox", profileStr.get(), flags);
|
||||
+
|
||||
+ if (init_rv != SECSuccess) {
|
||||
+ PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS using nsshelp_open_db in %s\n", profileStr.get()));
|
||||
+ 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);
|
||||
+ }
|
||||
+ }
|
||||
+#else
|
||||
+ init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false);
|
||||
init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false);
|
||||
+#endif
|
||||
// If that fails, attempt read-only mode.
|
||||
if (init_rv != SECSuccess) {
|
||||
PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("could not init NSS r/w in %s\n", profileStr.get()));
|
||||
MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("could not init NSS r/w in %s\n", profileStr.get()));
|
||||
init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), true);
|
||||
}
|
||||
if (init_rv != SECSuccess) {
|
||||
PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("could not init in r/o either\n"));
|
||||
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
|
||||
@@ -197,16 +197,18 @@ if CONFIG['MOZ_B2G_CAMERA'] and CONFIG['
|
||||
@@ -203,16 +203,18 @@ if CONFIG['MOZ_B2G_CAMERA'] and CONFIG['
|
||||
'stagefright_omx',
|
||||
]
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
REV=5500ee2a6206
|
||||
REV=78c82e5cd777
|
||||
REPO=http://hg.mozilla.org/releases/mozilla-release
|
||||
|
Loading…
Reference in New Issue
Block a user