forked from pool/MozillaFirefox
Accepting request 368778 from mozilla:Factory
- update to Firefox 45.0 (boo#969894) * requires NSPR 4.12 / NSS 3.21.1 * Instant browser tab sharing through Hello * Synced Tabs button in button bar * Tabs synced via Firefox Accounts from other devices are now shown in dropdown area of Awesome Bar when searching * Introduce a new preference (network.dns.blockDotOnion) to allow blocking .onion at the DNS level * Tab Groups (Panorama) feature removed * MFSA 2016-16/CVE-2016-1952/CVE-2016-1953 Miscellaneous memory safety hazards * MFSA 2016-17/CVE-2016-1954 (bmo#1243178) Local file overwriting and potential privilege escalation through CSP reports * MFSA 2016-18/CVE-2016-1955 (bmo#1208946) CSP reports fail to strip location information for embedded iframe pages * MFSA 2016-19/CVE-2016-1956 (bmo#1199923) Linux video memory DOS with Intel drivers * MFSA 2016-20/CVE-2016-1957 (bmo#1227052) Memory leak in libstagefright when deleting an array during MP4 processing * MFSA 2016-21/CVE-2016-1958 (bmo#1228754) Displayed page address can be overridden * MFSA 2016-22/CVE-2016-1959 (bmo#1234949) Service Worker Manager out-of-bounds read in Service Worker Manager * MFSA 2016-23/CVE-2016-1960/ZDI-CAN-3545 (bmo#1246014) Use-after-free in HTML5 string parser * MFSA 2016-24/CVE-2016-1961/ZDI-CAN-3574 (bmo#1249377) Use-after-free in SetBody * MFSA 2016-25/CVE-2016-1962 (bmo#1240760) OBS-URL: https://build.opensuse.org/request/show/368778 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/MozillaFirefox?expand=0&rev=230
This commit is contained in:
commit
9e7508861f
@ -1,3 +1,75 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun Mar 6 19:52:13 UTC 2016 - wr@rosenauer.org
|
||||
|
||||
- update to Firefox 45.0 (boo#969894)
|
||||
* requires NSPR 4.12 / NSS 3.21.1
|
||||
* Instant browser tab sharing through Hello
|
||||
* Synced Tabs button in button bar
|
||||
* Tabs synced via Firefox Accounts from other devices are now shown
|
||||
in dropdown area of Awesome Bar when searching
|
||||
* Introduce a new preference (network.dns.blockDotOnion) to allow
|
||||
blocking .onion at the DNS level
|
||||
* Tab Groups (Panorama) feature removed
|
||||
* MFSA 2016-16/CVE-2016-1952/CVE-2016-1953
|
||||
Miscellaneous memory safety hazards
|
||||
* MFSA 2016-17/CVE-2016-1954 (bmo#1243178)
|
||||
Local file overwriting and potential privilege escalation through
|
||||
CSP reports
|
||||
* MFSA 2016-18/CVE-2016-1955 (bmo#1208946)
|
||||
CSP reports fail to strip location information for embedded iframe pages
|
||||
* MFSA 2016-19/CVE-2016-1956 (bmo#1199923)
|
||||
Linux video memory DOS with Intel drivers
|
||||
* MFSA 2016-20/CVE-2016-1957 (bmo#1227052)
|
||||
Memory leak in libstagefright when deleting an array during MP4
|
||||
processing
|
||||
* MFSA 2016-21/CVE-2016-1958 (bmo#1228754)
|
||||
Displayed page address can be overridden
|
||||
* MFSA 2016-22/CVE-2016-1959 (bmo#1234949)
|
||||
Service Worker Manager out-of-bounds read in Service Worker Manager
|
||||
* MFSA 2016-23/CVE-2016-1960/ZDI-CAN-3545 (bmo#1246014)
|
||||
Use-after-free in HTML5 string parser
|
||||
* MFSA 2016-24/CVE-2016-1961/ZDI-CAN-3574 (bmo#1249377)
|
||||
Use-after-free in SetBody
|
||||
* MFSA 2016-25/CVE-2016-1962 (bmo#1240760)
|
||||
Use-after-free when using multiple WebRTC data channels
|
||||
* MFSA 2016-26/CVE-2016-1963 (bmo#1238440)
|
||||
Memory corruption when modifying a file being read by FileReader
|
||||
* MFSA 2016-27/CVE-2016-1964 (bmo#1243335)
|
||||
Use-after-free during XML transformations
|
||||
* MFSA 2016-28/CVE-2016-1965 (bmo#1245264)
|
||||
Addressbar spoofing though history navigation and Location protocol
|
||||
property
|
||||
* MFSA 2016-29/CVE-2016-1967 (bmo#1246956)
|
||||
Same-origin policy violation using perfomance.getEntries and
|
||||
history navigation with session restore
|
||||
* MFSA 2016-30/CVE-2016-1968 (bmo#1246742)
|
||||
Buffer overflow in Brotli decompression
|
||||
* MFSA 2016-31/CVE-2016-1966 (bmo#1246054)
|
||||
Memory corruption with malicious NPAPI plugin
|
||||
* MFSA 2016-32/CVE-2016-1970/CVE-2016-1971/CVE-2016-1975/
|
||||
CVE-2016-1976/CVE-2016-1972
|
||||
WebRTC and LibVPX vulnerabilities found through code inspection
|
||||
* MFSA 2016-33/CVE-2016-1973 (bmo#1219339)
|
||||
Use-after-free in GetStaticInstance in WebRTC
|
||||
* MFSA 2016-34/CVE-2016-1974 (bmo#1228103)
|
||||
Out-of-bounds read in HTML parser following a failed allocation
|
||||
* MFSA 2016-35/CVE-2016-1950 (bmo#1245528)
|
||||
Buffer overflow during ASN.1 decoding in NSS
|
||||
(fixed by requiring 3.21.1)
|
||||
* MFSA 2016-36/CVE-2016-1979 (bmo#1185033)
|
||||
Use-after-free during processing of DER encoded keys in NSS
|
||||
(fixed by requiring 3.21.1)
|
||||
* MFSA 2016-37/CVE-2016-1977/CVE-2016-2790/CVE-2016-2791/
|
||||
CVE-2016-2792/CVE-2016-2793/CVE-2016-2794/CVE-2016-2795/
|
||||
CVE-2016-2796/CVE-2016-2797/CVE-2016-2798/CVE-2016-2799/
|
||||
CVE-2016-2800/CVE-2016-2801/CVE-2016-2802
|
||||
Font vulnerabilities in the Graphite 2 library
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Mar 5 15:27:00 UTC 2016 - olaf@aepfle.de
|
||||
|
||||
- Remove B_CNT from symbols.zip filename to reduce build-compare noise
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 26 16:22:52 UTC 2016 - astieger@suse.com
|
||||
|
||||
|
@ -18,10 +18,10 @@
|
||||
|
||||
|
||||
# changed with every update
|
||||
%define major 44
|
||||
%define mainver %major.0.2
|
||||
%define major 45
|
||||
%define mainver %major.0
|
||||
%define update_channel release
|
||||
%define releasedate 2016021000
|
||||
%define releasedate 2016030500
|
||||
|
||||
# general build definitions
|
||||
%if "%{update_channel}" != "aurora"
|
||||
@ -77,8 +77,8 @@ BuildRequires: libiw-devel
|
||||
BuildRequires: libnotify-devel
|
||||
BuildRequires: libproxy-devel
|
||||
BuildRequires: makeinfo
|
||||
BuildRequires: mozilla-nspr-devel >= 4.11
|
||||
BuildRequires: mozilla-nss-devel >= 3.21
|
||||
BuildRequires: mozilla-nspr-devel >= 4.12
|
||||
BuildRequires: mozilla-nss-devel >= 3.21.1
|
||||
BuildRequires: nss-shared-helper-devel
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: startup-notification-devel
|
||||
@ -524,7 +524,7 @@ FIN
|
||||
%fdupes %{buildroot}%{_datadir}
|
||||
# create breakpad debugsymbols
|
||||
%if %crashreporter
|
||||
SYMBOLS_NAME="firefox-%{version}-%{release}.%{_arch}-%{suse_version}-symbols"
|
||||
SYMBOLS_NAME="firefox-%{version}-` echo '%{release}' | sed 's@\.[^\.]\+$@@' `.%{_arch}-%{suse_version}-symbols"
|
||||
make buildsymbols \
|
||||
SYMBOL_INDEX_NAME="$SYMBOLS_NAME.txt" \
|
||||
SYMBOL_FULL_ARCHIVE_BASENAME="$SYMBOLS_NAME-full" \
|
||||
@ -562,15 +562,15 @@ exit 0
|
||||
%dir %{progdir}/browser/extensions/
|
||||
%{progdir}/browser/components/
|
||||
%{progdir}/browser/defaults
|
||||
%{progdir}/browser/features/
|
||||
%{progdir}/browser/icons/
|
||||
%{progdir}/browser/chrome/icons
|
||||
%{progdir}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}
|
||||
%{progdir}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
|
||||
%{progdir}/browser/blocklist.xml
|
||||
%{progdir}/browser/chrome.manifest
|
||||
%{progdir}/browser/omni.ja
|
||||
%dir %{progdir}/distribution/
|
||||
%{progdir}/distribution/extensions/
|
||||
%{progdir}/components/
|
||||
%{progdir}/defaults/
|
||||
%{progdir}/dictionaries/
|
||||
%if 0%{?suse_version} > 1320
|
||||
@ -589,7 +589,6 @@ exit 0
|
||||
%{progdir}/platform.ini
|
||||
%{progdir}/plugin-container
|
||||
%{progdir}/webapprt-stub
|
||||
%{progdir}/chrome.manifest
|
||||
%if %crashreporter
|
||||
%{progdir}/crashreporter
|
||||
%{progdir}/crashreporter.ini
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f9158e2d2e3ef9a54e625ebc3d5d25b27f6031095a5bf399435988277a63b1b2
|
||||
size 28372
|
||||
oid sha256:e0758abf226a86c06c7c793ab5214f7c6c01f26fce59ffc5803d5b30c31a7556
|
||||
size 28400
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
CHANNEL="release"
|
||||
BRANCH="releases/mozilla-$CHANNEL"
|
||||
RELEASE_TAG="FIREFOX_44_0_2_RELEASE"
|
||||
VERSION="44.0.2"
|
||||
RELEASE_TAG="FIREFOX_45_0_RELEASE"
|
||||
VERSION="45.0"
|
||||
|
||||
# mozilla
|
||||
if [ -d mozilla ]; then
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fce1881f439a5769dc9ab080cff0a743b55ada06a24a94c37a13bb2d87f5d579
|
||||
size 192330532
|
3
firefox-45.0-source.tar.xz
Normal file
3
firefox-45.0-source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3e6dee86eaaa1660abdefcd5a44ecec414b1734e28cb6f6a0924018dd3dc6627
|
||||
size 194129856
|
@ -1,6 +1,6 @@
|
||||
# HG changeset patch
|
||||
# Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de
|
||||
# Parent e10e9bf6ab3a74655998bd0286d248f5d17a601a
|
||||
# Parent e3d8efdd7eea96ff7b8a7f6489a082cad72a98d8
|
||||
|
||||
diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
|
||||
--- a/browser/app/Makefile.in
|
||||
@ -49,7 +49,7 @@ 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
|
||||
--- a/browser/installer/package-manifest.in
|
||||
+++ b/browser/installer/package-manifest.in
|
||||
@@ -670,18 +670,21 @@
|
||||
@@ -665,18 +665,21 @@
|
||||
@RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png
|
||||
@RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf
|
||||
@RESPATH@/chrome/toolkit@JAREXT@
|
||||
@ -64,10 +64,10 @@ diff --git a/browser/installer/package-manifest.in b/browser/installer/package-m
|
||||
@RESPATH@/browser/chrome/icons/default/default48.png
|
||||
+@RESPATH@/browser/chrome/icons/default/default256.png
|
||||
#endif
|
||||
@RESPATH@/browser/features/*
|
||||
|
||||
; [Webide Files]
|
||||
@RESPATH@/browser/chrome/webide@JAREXT@
|
||||
@RESPATH@/browser/chrome/webide.manifest
|
||||
@RESPATH@/browser/@PREF_DIR@/webide-prefs.js
|
||||
|
||||
; DevTools
|
||||
|
@ -1,11 +1,11 @@
|
||||
# HG changeset patch
|
||||
# Parent 77c3bdc27160dfa96aa4b3288c7f12a72f273967
|
||||
# Parent 25d63ce139ad6e957d2565e3b83d01dfa36ea314
|
||||
|
||||
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,1250 @@
|
||||
@@ -0,0 +1,1181 @@
|
||||
+#filter substitution
|
||||
+<?xml version="1.0"?>
|
||||
+# -*- Mode: HTML -*-
|
||||
@ -99,15 +99,6 @@ new file mode 100644
|
||||
+ <menuitem id="context_unpinTab" label="&unpinTab.label;" hidden="true"
|
||||
+ accesskey="&unpinTab.accesskey;"
|
||||
+ oncommand="gBrowser.unpinTab(TabContextMenu.contextTab);"/>
|
||||
+ <menu id="context_tabViewMenu" label="&moveToGroup.label;"
|
||||
+ accesskey="&moveToGroup.accesskey;">
|
||||
+ <menupopup id="context_tabViewMenuPopup"
|
||||
+ onpopupshowing="if (event.target == this) TabView.moveToGroupPopupShowing(event);">
|
||||
+ <menuseparator id="context_tabViewNamedGroups" hidden="true"/>
|
||||
+ <menuitem id="context_tabViewNewGroup" label="&moveToNewGroup.label;"
|
||||
+ oncommand="TabView.moveTabTo(TabContextMenu.contextTab, null);"/>
|
||||
+ </menupopup>
|
||||
+ </menu>
|
||||
+ <menuitem id="context_openTabInWindow" label="&moveToNewWindow.label;"
|
||||
+ accesskey="&moveToNewWindow.accesskey;"
|
||||
+ tbattr="tabbrowser-multiple"
|
||||
@ -127,7 +118,7 @@ new file mode 100644
|
||||
+ accesskey="&bookmarkAllTabs.accesskey;"
|
||||
+ command="Browser:BookmarkAllTabs"/>
|
||||
+ <menuitem id="context_closeTabsToTheEnd" label="&closeTabsToTheEnd.label;" accesskey="&closeTabsToTheEnd.accesskey;"
|
||||
+ oncommand="gBrowser.removeTabsToTheEndFrom(TabContextMenu.contextTab);"/>
|
||||
+ oncommand="gBrowser.removeTabsToTheEndFrom(TabContextMenu.contextTab, {animate: true});"/>
|
||||
+ <menuitem id="context_closeOtherTabs" label="&closeOtherTabs.label;" accesskey="&closeOtherTabs.accesskey;"
|
||||
+ oncommand="gBrowser.removeAllTabsBut(TabContextMenu.contextTab);"/>
|
||||
+ <menuseparator/>
|
||||
@ -269,14 +260,6 @@ new file mode 100644
|
||||
+ <box id="UITourHighlight"></box>
|
||||
+ </panel>
|
||||
+
|
||||
+ <panel id="abouthome-search-panel" orient="vertical" type="arrow" hidden="true"
|
||||
+ onclick="this.hidePopup()">
|
||||
+ <hbox id="abouthome-search-panel-manage"
|
||||
+ onclick="openPreferences('paneSearch')">
|
||||
+ <label>&changeSearchSettings.button;</label>
|
||||
+ </hbox>
|
||||
+ </panel>
|
||||
+
|
||||
+ <panel id="social-share-panel"
|
||||
+ class="social-panel"
|
||||
+ type="arrow"
|
||||
@ -327,26 +310,6 @@ new file mode 100644
|
||||
+ orient="horizontal"
|
||||
+ hidden="true"/>
|
||||
+
|
||||
+ <menupopup id="processHangOptions"
|
||||
+ onpopupshowing="ProcessHangMonitor.refreshMenu(window);">
|
||||
+ <menuitem id="processHangTerminateScript"
|
||||
+ oncommand="ProcessHangMonitor.terminateScript(window)"
|
||||
+ accesskey="&processHang.terminateScript.accessKey;"
|
||||
+ label="&processHang.terminateScript.label;"/>
|
||||
+ <menuitem id="processHangDebugScript"
|
||||
+ oncommand="ProcessHangMonitor.debugScript(window)"
|
||||
+ accesskey="&processHang.debugScript.accessKey;"
|
||||
+ label="&processHang.debugScript.label;"/>
|
||||
+ <menuitem id="processHangTerminatePlugin"
|
||||
+ oncommand="ProcessHangMonitor.terminatePlugin(window)"
|
||||
+ accesskey="&processHang.terminatePlugin.accessKey;"
|
||||
+ label="&processHang.terminatePlugin.label;"/>
|
||||
+ <menuitem id="processHangTerminateProcess"
|
||||
+ oncommand="ProcessHangMonitor.terminateProcess(window)"
|
||||
+ accesskey="&processHang.terminateProcess.accessKey;"
|
||||
+ label="&processHang.terminateProcess.label;"/>
|
||||
+ </menupopup>
|
||||
+
|
||||
+ <menupopup id="toolbar-context-menu"
|
||||
+ onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('viewToolbarsMenuSeparator'));">
|
||||
+ <menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)"
|
||||
@ -508,17 +471,6 @@ new file mode 100644
|
||||
+
|
||||
+ <tooltip id="dynamic-shortcut-tooltip"
|
||||
+ onpopupshowing="UpdateDynamicShortcutTooltipText(this);"/>
|
||||
+
|
||||
+ <menupopup id="emeNotificationsPopup">
|
||||
+ <menuitem id="emeNotificationsNotNow"
|
||||
+ label="&emeNotificationsNotNow.label;"
|
||||
+ acceskey="&emeNotificationsNotNow.accesskey;"
|
||||
+ oncommand="gEMEHandler.onNotNow(this);"/>
|
||||
+ <menuitem id="emeNotificationsDontAskAgain"
|
||||
+ label="&emeNotificationsDontAskAgain.label;"
|
||||
+ acceskey="&emeNotificationsDontAskAgain.accesskey;"
|
||||
+ oncommand="gEMEHandler.onDontAskAgain(this);"/>
|
||||
+ </menupopup>
|
||||
+ </popupset>
|
||||
+
|
||||
+#ifdef CAN_DRAW_IN_TITLEBAR
|
||||
@ -626,12 +578,6 @@ new file mode 100644
|
||||
+ removable="false">
|
||||
+ <menupopup id="alltabs-popup"
|
||||
+ position="after_end">
|
||||
+ <menuitem id="menu_tabview"
|
||||
+ class="menuitem-iconic"
|
||||
+ key="key_tabview"
|
||||
+ label="&viewTabGroups.label;"
|
||||
+ command="Browser:ToggleTabView"
|
||||
+ observes="tabviewGroupsNumber"/>
|
||||
+ <menuitem id="alltabs_undoCloseTab"
|
||||
+ class="menuitem-iconic"
|
||||
+ key="key_undoCloseTab"
|
||||
@ -740,7 +686,7 @@ new file mode 100644
|
||||
+ <image id="plugins-notification-icon" class="notification-anchor-icon" role="button"
|
||||
+ aria-label="&urlbar.pluginsNotificationAnchor.label;"/>
|
||||
+ <image id="web-notifications-notification-icon" class="notification-anchor-icon" role="button"
|
||||
+ aria-label="&urlbar.webNotsNotificationAnchor.label;"/>
|
||||
+ aria-label="&urlbar.webNotsNotificationAnchor3.label;"/>
|
||||
+ <image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon" role="button"
|
||||
+ aria-label="&urlbar.webRTCShareDevicesNotificationAnchor.label;"/>
|
||||
+ <image id="webRTC-sharingDevices-notification-icon" class="notification-anchor-icon" role="button"
|
||||
@ -774,13 +720,11 @@ new file mode 100644
|
||||
+ onclick="gIdentityHandler.handleIdentityButtonEvent(event);"
|
||||
+ onkeypress="gIdentityHandler.handleIdentityButtonEvent(event);"
|
||||
+ ondragstart="gIdentityHandler.onDragStart(event);">
|
||||
+ <hbox id="identity-icons"
|
||||
+ consumeanchor="identity-box">
|
||||
+ <image id="tracking-protection-icon"/>
|
||||
+ <image id="page-proxy-favicon"
|
||||
+ onclick="PageProxyClickHandler(event);"
|
||||
+ pageproxystate="invalid"/>
|
||||
+ </hbox>
|
||||
+ <image id="identity-icon"
|
||||
+ consumeanchor="identity-box"
|
||||
+ onclick="PageProxyClickHandler(event);"/>
|
||||
+ <image id="tracking-protection-icon"/>
|
||||
+ <image id="connection-icon"/>
|
||||
+ <hbox id="identity-icon-labels">
|
||||
+ <label id="identity-icon-label" class="plain" flex="1"/>
|
||||
+ <label id="identity-icon-country-label" class="plain"/>
|
||||
@ -1091,19 +1035,6 @@ new file mode 100644
|
||||
+ type="checkbox"
|
||||
+ label="&fullScreenCmd.label;"
|
||||
+ tooltip="dynamic-shortcut-tooltip"/>
|
||||
+
|
||||
+#ifdef MOZ_SERVICES_SYNC
|
||||
+ <toolbarbutton id="sync-button"
|
||||
+ class="toolbarbutton-1 chromeclass-toolbar-additional"
|
||||
+ label="&syncToolbarButton.label;"
|
||||
+ oncommand="gSyncUI.handleToolbarButton()"/>
|
||||
+#endif
|
||||
+
|
||||
+ <toolbarbutton id="tabview-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
|
||||
+ label="&tabGroupsButton.label;"
|
||||
+ command="Browser:ToggleTabView"
|
||||
+ tooltip="dynamic-shortcut-tooltip"
|
||||
+ observes="tabviewGroupsNumber"/>
|
||||
+ </toolbarpalette>
|
||||
+ </toolbox>
|
||||
+
|
||||
@ -1259,25 +1190,25 @@ new file mode 100644
|
||||
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
|
||||
--- a/browser/base/jar.mn
|
||||
+++ b/browser/base/jar.mn
|
||||
@@ -70,16 +70,18 @@ browser.jar:
|
||||
content/browser/aboutSocialError.xhtml (content/aboutSocialError.xhtml)
|
||||
content/browser/aboutProviderDirectory.xhtml (content/aboutProviderDirectory.xhtml)
|
||||
@@ -71,16 +71,18 @@ browser.jar:
|
||||
content/browser/aboutTabCrashed.css (content/aboutTabCrashed.css)
|
||||
content/browser/aboutTabCrashed.js (content/aboutTabCrashed.js)
|
||||
content/browser/aboutTabCrashed.xhtml (content/aboutTabCrashed.xhtml)
|
||||
* content/browser/aboutTabGroupsMigration.xhtml (content/aboutTabGroupsMigration.xhtml)
|
||||
content/browser/aboutTabGroupsMigration.js (content/aboutTabGroupsMigration.js)
|
||||
* content/browser/browser.css (content/browser.css)
|
||||
* content/browser/browser.js (content/browser.js)
|
||||
content/browser/browser.js (content/browser.js)
|
||||
* 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-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)
|
||||
content/browser/browser-addons.js (content/browser-addons.js)
|
||||
content/browser/browser-ctrlTab.js (content/browser-ctrlTab.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-devedition.js (content/browser-devedition.js)
|
||||
content/browser/browser-eme.js (content/browser-eme.js)
|
||||
content/browser/browser-feeds.js (content/browser-feeds.js)
|
||||
content/browser/browser-fullScreen.js (content/browser-fullScreen.js)
|
||||
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
|
||||
@ -1296,11 +1227,11 @@ diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/ns
|
||||
|
||||
#if defined(XP_WIN)
|
||||
#include "nsIEHistoryEnumerator.h"
|
||||
#include "nsEdgeReadingListExtractor.h"
|
||||
#endif
|
||||
|
||||
#include "rdf.h"
|
||||
@@ -32,18 +32,16 @@ using namespace mozilla::browser;
|
||||
#include "nsFeedSniffer.h"
|
||||
@@ -31,18 +31,16 @@ using namespace mozilla::browser;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -1315,11 +1246,11 @@ diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/ns
|
||||
|
||||
#if defined(XP_WIN)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsIEHistoryEnumerator)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsEdgeReadingListExtractor)
|
||||
#endif
|
||||
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsFeedSniffer)
|
||||
@@ -63,17 +61,17 @@ NS_DEFINE_NAMED_CID(NS_EDGEREADINGLISTEX
|
||||
|
||||
@@ -60,17 +58,17 @@ NS_DEFINE_NAMED_CID(NS_WINIEHISTORYENUME
|
||||
NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID);
|
||||
#endif
|
||||
|
||||
@ -1335,13 +1266,13 @@ diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/ns
|
||||
{ &kNS_BROWSER_ABOUT_REDIRECTOR_CID, false, nullptr, AboutRedirector::Create },
|
||||
#if defined(XP_WIN)
|
||||
{ &kNS_WINIEHISTORYENUMERATOR_CID, false, nullptr, nsIEHistoryEnumeratorConstructor },
|
||||
{ &kNS_EDGEREADINGLISTEXTRACTOR_CID, false, nullptr, nsEdgeReadingListExtractorConstructor },
|
||||
#elif defined(XP_MACOSX)
|
||||
{ &kNS_SHELLSERVICE_CID, false, nullptr, nsMacShellServiceConstructor },
|
||||
#endif
|
||||
diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js
|
||||
--- a/browser/components/preferences/in-content/main.js
|
||||
+++ b/browser/components/preferences/in-content/main.js
|
||||
@@ -14,16 +14,22 @@ var gMainPane = {
|
||||
@@ -18,16 +18,22 @@ var gMainPane = {
|
||||
init: function ()
|
||||
{
|
||||
function setEventListener(aId, aEventType, aCallback)
|
||||
@ -1364,7 +1295,7 @@ diff --git a/browser/components/preferences/in-content/main.js b/browser/compone
|
||||
// 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.
|
||||
@@ -711,16 +717,27 @@ var gMainPane = {
|
||||
@@ -720,16 +726,27 @@ var gMainPane = {
|
||||
*/
|
||||
setDefaultBrowser: function()
|
||||
{
|
||||
@ -1418,7 +1349,7 @@ diff --git a/browser/components/shell/nsKDEShellService.cpp b/browser/components
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/browser/components/shell/nsKDEShellService.cpp
|
||||
@@ -0,0 +1,292 @@
|
||||
@@ -0,0 +1,251 @@
|
||||
+/* -*- 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
|
||||
@ -1499,47 +1430,6 @@ new file mode 100644
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::GetShouldSkipCheckDefaultBrowser(bool* aResult)
|
||||
+{
|
||||
+ NS_ENSURE_ARG_POINTER(aResult);
|
||||
+
|
||||
+ nsresult rv;
|
||||
+ nsCOMPtr<nsIPrefBranch> prefs(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
|
||||
+ if (NS_FAILED(rv)) {
|
||||
+ return rv;
|
||||
+ }
|
||||
+
|
||||
+ rv = prefs->GetBoolPref(PREF_SKIPDEFAULTBROWSERCHECK, aResult);
|
||||
+ if (NS_FAILED(rv)) {
|
||||
+ return rv;
|
||||
+ }
|
||||
+ if (*aResult) {
|
||||
+ // Only skip the default browser check once. The next attempt in
|
||||
+ // a new session should proceed.
|
||||
+ return prefs->SetBoolPref(PREF_SKIPDEFAULTBROWSERCHECK, false);
|
||||
+ }
|
||||
+
|
||||
+ int32_t defaultBrowserCheckCount;
|
||||
+ rv = prefs->GetIntPref(PREF_DEFAULTBROWSERCHECKCOUNT,
|
||||
+ &defaultBrowserCheckCount);
|
||||
+ if (NS_FAILED(rv)) {
|
||||
+ return rv;
|
||||
+ }
|
||||
+ if (defaultBrowserCheckCount < 4) {
|
||||
+ *aResult = false;
|
||||
+ return prefs->SetIntPref(PREF_DEFAULTBROWSERCHECKCOUNT,
|
||||
+ defaultBrowserCheckCount + 1);
|
||||
+ }
|
||||
+
|
||||
+ // Disable the default browser check after three attempts.
|
||||
+ // Don't modify PREF_CHECKDEFAULTBROWSER since that is a
|
||||
+ // user-initiated action and it shouldn't get re-enabled
|
||||
+ // if it has been user disabled.
|
||||
+ *aResult = true;
|
||||
+ return rv;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::GetShouldCheckDefaultBrowser(bool* aResult)
|
||||
+{
|
||||
+ // If we've already checked, the browser has been started and this is a
|
||||
@ -1795,7 +1685,7 @@ new file mode 100644
|
||||
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
||||
--- a/browser/installer/package-manifest.in
|
||||
+++ b/browser/installer/package-manifest.in
|
||||
@@ -709,16 +709,17 @@
|
||||
@@ -705,16 +705,17 @@
|
||||
@RESPATH@/defaults/autoconfig/prefcalls.js
|
||||
@RESPATH@/browser/defaults/profile/prefs.js
|
||||
@RESPATH@/browser/defaults/permissions
|
||||
@ -1810,6 +1700,6 @@ diff --git a/browser/installer/package-manifest.in b/browser/installer/package-m
|
||||
#ifdef MOZ_SERVICES_NOTIFICATIONS
|
||||
@RESPATH@/defaults/pref/services-notifications.js
|
||||
#endif
|
||||
#ifdef MOZ_SERVICES_SYNC
|
||||
@RESPATH@/defaults/pref/services-sync.js
|
||||
#endif
|
||||
|
||||
; [Layout Engine Resources]
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b55f3e44631f505f7179da7ea97087fc3b473398e0c9162276c1386e824234bb
|
||||
size 42994264
|
3
l10n-45.0.tar.xz
Normal file
3
l10n-45.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:227021a66089ff25b57789d1022bd10cada4a2eb63e2975107c877d31c2309d9
|
||||
size 43432208
|
@ -1,30 +1,11 @@
|
||||
# HG changeset patch
|
||||
# Parent d9c9ae52f0338a60d1626d9209248341815e597a
|
||||
# Parent 797d5f17b080f54439602f107ecaf6b09a0ef5c1
|
||||
Description: Add KDE integration to Firefox (toolkit parts)
|
||||
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
|
||||
Author: Lubos Lunak <lunak@suse.com>
|
||||
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751
|
||||
https://bugzilla.novell.com/show_bug.cgi?id=170055
|
||||
|
||||
diff --git a/modules/libpref/Makefile.in b/modules/libpref/Makefile.in
|
||||
--- a/modules/libpref/Makefile.in
|
||||
+++ b/modules/libpref/Makefile.in
|
||||
@@ -21,13 +21,15 @@ endif
|
||||
ifdef MOZ_SERVICES_HEALTHREPORT
|
||||
ifneq (android,$(MOZ_WIDGET_TOOLKIT))
|
||||
grepref_files += $(topsrcdir)/services/healthreport/healthreport-prefs.js
|
||||
else
|
||||
grepref_files += $(topsrcdir)/mobile/android/chrome/content/healthreport-prefs.js
|
||||
endif
|
||||
endif
|
||||
|
||||
+LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
|
||||
+
|
||||
greprefs.js: $(grepref_files)
|
||||
$(call py_action,preprocessor,$(PREF_PPFLAGS) $(DEFINES) $(ACDEFINES) $(MOZ_DEBUG_DEFINES) $^ -o $@)
|
||||
|
||||
libs:: greprefs.js
|
||||
$(INSTALL) $^ $(DIST)/bin/
|
||||
diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
--- a/modules/libpref/Preferences.cpp
|
||||
+++ b/modules/libpref/Preferences.cpp
|
||||
@ -46,7 +27,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
#include "prefread.h"
|
||||
#include "prefapi_private_data.h"
|
||||
|
||||
@@ -1148,16 +1149,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
|
||||
@@ -1136,16 +1137,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
|
||||
|
||||
static nsresult pref_LoadPrefsInDirList(const char *listId)
|
||||
{
|
||||
@ -81,7 +62,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
return NS_OK;
|
||||
|
||||
bool hasMore;
|
||||
@@ -1173,17 +1192,17 @@ static nsresult pref_LoadPrefsInDirList(
|
||||
@@ -1161,17 +1180,17 @@ static nsresult pref_LoadPrefsInDirList(
|
||||
|
||||
nsAutoCString leaf;
|
||||
path->GetNativeLeafName(leaf);
|
||||
@ -100,7 +81,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);
|
||||
@@ -1277,26 +1296,38 @@ static nsresult pref_InitInitialObjects(
|
||||
@@ -1265,26 +1284,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)
|
||||
@ -139,6 +120,30 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
// or jar:$gre/omni.jar!/defaults/preferences/*.js.
|
||||
RefPtr<nsZipArchive> appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP);
|
||||
// GetReader(mozilla::Omnijar::APP) returns null when $app == $gre, in which
|
||||
diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
|
||||
--- a/modules/libpref/moz.build
|
||||
+++ b/modules/libpref/moz.build
|
||||
@@ -31,16 +31,20 @@ UNIFIED_SOURCES += [
|
||||
'prefread.cpp',
|
||||
]
|
||||
|
||||
# prefapi.cpp cannot be built in unified mode because it uses plarena.h
|
||||
SOURCES += [
|
||||
'prefapi.cpp',
|
||||
]
|
||||
|
||||
+LOCAL_INCLUDES += [
|
||||
+ '/toolkit/xre'
|
||||
+]
|
||||
+
|
||||
include('/ipc/chromium/chromium-config.mozbuild')
|
||||
|
||||
FINAL_LIBRARY = 'xul'
|
||||
|
||||
DEFINES['OS_ARCH'] = CONFIG['OS_ARCH']
|
||||
DEFINES['MOZ_WIDGET_TOOLKIT'] = CONFIG['MOZ_WIDGET_TOOLKIT']
|
||||
|
||||
if CONFIG['GNU_CXX']:
|
||||
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
|
||||
@ -226,7 +231,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
|
||||
#include "AndroidBridge.h"
|
||||
#endif
|
||||
|
||||
@@ -2714,16 +2718,25 @@ nsDownload::SetState(DownloadState aStat
|
||||
@@ -2719,16 +2723,25 @@ nsDownload::SetState(DownloadState aStat
|
||||
nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
|
||||
// Master pref to control this function.
|
||||
@ -252,7 +257,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
|
||||
int64_t goat = PR_Now() - mStartTime;
|
||||
showTaskbarAlert = goat > alertIntervalUSec;
|
||||
|
||||
@@ -2754,16 +2767,17 @@ nsDownload::SetState(DownloadState aStat
|
||||
@@ -2759,16 +2772,17 @@ nsDownload::SetState(DownloadState aStat
|
||||
NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title,
|
||||
message, !removeWhenDone,
|
||||
mPrivate ? NS_LITERAL_STRING("private") : NS_LITERAL_STRING("non-private"),
|
||||
@ -2697,7 +2702,7 @@ new file mode 100644
|
||||
diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
|
||||
--- a/uriloader/exthandler/moz.build
|
||||
+++ b/uriloader/exthandler/moz.build
|
||||
@@ -72,17 +72,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'ui
|
||||
@@ -75,17 +75,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'ui
|
||||
else:
|
||||
# These files can't be built in unified mode because they redefine LOG.
|
||||
SOURCES += [
|
||||
@ -2717,7 +2722,7 @@ diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
|
||||
'android/nsExternalSharingAppService.cpp',
|
||||
'android/nsExternalURLHandlerService.cpp',
|
||||
'android/nsMIMEInfoAndroid.cpp',
|
||||
@@ -125,16 +127,17 @@ include('/ipc/chromium/chromium-config.m
|
||||
@@ -129,16 +131,17 @@ include('/ipc/chromium/chromium-config.m
|
||||
|
||||
FINAL_LIBRARY = 'xul'
|
||||
|
||||
@ -3662,8 +3667,8 @@ diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build
|
||||
--- a/xpcom/components/moz.build
|
||||
+++ b/xpcom/components/moz.build
|
||||
@@ -47,12 +47,13 @@ FINAL_LIBRARY = 'xul'
|
||||
GENERATED_INCLUDES += ['..']
|
||||
LOCAL_INCLUDES += [
|
||||
'!..',
|
||||
'../base',
|
||||
'../build',
|
||||
'../ds',
|
||||
|
@ -7,7 +7,7 @@ References:
|
||||
diff --git a/configure.in b/configure.in
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -8309,16 +8309,31 @@ if test "$MOZ_ENABLE_SKIA"; then
|
||||
@@ -8310,16 +8310,31 @@ if test "$MOZ_ENABLE_SKIA"; then
|
||||
AC_DEFINE(USE_SKIA_GPU)
|
||||
AC_SUBST(MOZ_ENABLE_SKIA_GPU)
|
||||
fi
|
||||
@ -42,7 +42,7 @@ diff --git a/configure.in b/configure.in
|
||||
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
|
||||
@@ -160,16 +160,19 @@ UNIFIED_SOURCES += [
|
||||
FINAL_LIBRARY = 'xul'
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
@ -54,8 +54,8 @@ diff --git a/security/manager/ssl/moz.build b/security/manager/ssl/moz.build
|
||||
+CXXFLAGS += sorted(CONFIG['NSSHELPER_CFLAGS'])
|
||||
+OS_LIBS += sorted(CONFIG['NSSHELPER_LIBS'])
|
||||
+
|
||||
GENERATED_INCLUDES += [
|
||||
'/dist/public/nss',
|
||||
LOCAL_INCLUDES += [
|
||||
'!/dist/public/nss',
|
||||
]
|
||||
|
||||
if CONFIG['NSS_DISABLE_DBM']:
|
||||
@ -83,38 +83,38 @@ diff --git a/security/manager/ssl/nsNSSComponent.cpp b/security/manager/ssl/nsNS
|
||||
|
||||
#include "ExtendedValidation.h"
|
||||
#include "NSSCertDBTrustDomain.h"
|
||||
#include "mozilla/Telemetry.h"
|
||||
#include "nsAppDirectoryServiceDefs.h"
|
||||
#include "nsCertVerificationThread.h"
|
||||
#include "nsAppDirectoryServiceDefs.h"
|
||||
@@ -1015,17 +1022,31 @@ nsNSSComponent::InitializeNSS()
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
#include "SharedSSLState.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "mozilla/PublicSSL.h"
|
||||
#include "mozilla/Services.h"
|
||||
@@ -1007,17 +1014,31 @@ nsNSSComponent::InitializeNSS()
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
SECStatus init_rv = SECFailure;
|
||||
bool nocertdb = Preferences::GetBool("security.nocertdb", false);
|
||||
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);
|
||||
+ 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);
|
||||
+ init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false, !inSafeMode);
|
||||
+ }
|
||||
+ }
|
||||
+#else
|
||||
init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false);
|
||||
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);
|
||||
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"));
|
||||
|
@ -1,2 +1,2 @@
|
||||
REV=60e96806ff1c
|
||||
REV=b6609650a911
|
||||
REPO=http://hg.mozilla.org/releases/mozilla-release
|
||||
|
Loading…
Reference in New Issue
Block a user