1
0

Accepting request 400713 from mozilla:Factory

- update to Firefox 47.0 (boo#983549)
  * Enable VP9 video codec for users with fast machines
  * Embedded YouTube videos now play with HTML5 video if Flash is
    not installed
  * View and search open tabs from your smartphone or another
    computer in a sidebar
  * Allow no-cache on back/forward navigations for https resources
  security fixes:
  * MFSA 2016-49/CVE-2016-2815/CVE-2016-2818
    (boo#983638)
    (bmo#1241896, bmo#1242798, bmo#1243466, bmo#1245743,
     bmo#1264300, bmo#1271037, bmo#1234147, bmo#1256493,
     bmo#1256739, bmo#1256968, bmo#1261230, bmo#1261752,
     bmo#1263384, bmo#1264575, bmo#1265577, bmo#1267130,
     bmo#1269729, bmo#1273202, bmo#1273701)
    Miscellaneous memory safety hazards (rv:47.0 / rv:45.2)
  * MFSA 2016-50/CVE-2016-2819 (boo#983655) (bmo#1270381)
    Buffer overflow parsing HTML5 fragments
  * MFSA 2016-51/CVE-2016-2821 (bsc#983653) (bmo#1271460)
    Use-after-free deleting tables from a contenteditable document
  * MFSA 2016-52/CVE-2016-2822 (boo#983652) (bmo#1273129)
    Addressbar spoofing though the SELECT element
  * MFSA 2016-53/CVE-2016-2824 (boo#983651) (bmo#1248580)
    Out-of-bounds write with WebGL shader
  * MFSA 2016-54/CVE-2016-2825 (boo#983649) (bmo#1193093)
    Partial same-origin-policy through setting location.host
    through data URI
  * MFSA 2016-56/CVE-2016-2828 (boo#983646) (bmo#1223810)
    Use-after-free when textures are used in WebGL operations
    after recycle pool destruction

OBS-URL: https://build.opensuse.org/request/show/400713
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/MozillaFirefox?expand=0&rev=237
This commit is contained in:
Dominique Leuenberger 2016-06-12 16:51:47 +00:00 committed by Git OBS Bridge
commit 011d6fac17
15 changed files with 356 additions and 408 deletions

View File

@ -1,3 +1,57 @@
-------------------------------------------------------------------
Tue Jun 7 19:47:25 UTC 2016 - wr@rosenauer.org
- update to Firefox 47.0 (boo#983549)
* Enable VP9 video codec for users with fast machines
* Embedded YouTube videos now play with HTML5 video if Flash is
not installed
* View and search open tabs from your smartphone or another
computer in a sidebar
* Allow no-cache on back/forward navigations for https resources
security fixes:
* MFSA 2016-49/CVE-2016-2815/CVE-2016-2818
(boo#983638)
(bmo#1241896, bmo#1242798, bmo#1243466, bmo#1245743,
bmo#1264300, bmo#1271037, bmo#1234147, bmo#1256493,
bmo#1256739, bmo#1256968, bmo#1261230, bmo#1261752,
bmo#1263384, bmo#1264575, bmo#1265577, bmo#1267130,
bmo#1269729, bmo#1273202, bmo#1273701)
Miscellaneous memory safety hazards (rv:47.0 / rv:45.2)
* MFSA 2016-50/CVE-2016-2819 (boo#983655) (bmo#1270381)
Buffer overflow parsing HTML5 fragments
* MFSA 2016-51/CVE-2016-2821 (bsc#983653) (bmo#1271460)
Use-after-free deleting tables from a contenteditable document
* MFSA 2016-52/CVE-2016-2822 (boo#983652) (bmo#1273129)
Addressbar spoofing though the SELECT element
* MFSA 2016-53/CVE-2016-2824 (boo#983651) (bmo#1248580)
Out-of-bounds write with WebGL shader
* MFSA 2016-54/CVE-2016-2825 (boo#983649) (bmo#1193093)
Partial same-origin-policy through setting location.host
through data URI
* MFSA 2016-56/CVE-2016-2828 (boo#983646) (bmo#1223810)
Use-after-free when textures are used in WebGL operations
after recycle pool destruction
* MFSA 2016-57/CVE-2016-2829 (boo#983644) (bmo#1248329)
Incorrect icon displayed on permissions notifications
* MFSA 2016-58/CVE-2016-2831 (boo#983643) (bmo#1261933)
Entering fullscreen and persistent pointerlock without user
permission
* MFSA 2016-59/CVE-2016-2832 (boo#983632) (bmo#1025267)
Information disclosure of disabled plugins through CSS
pseudo-classes
* MFSA 2016-60/CVE-2016-2833 (boo#983640) (bmo#908933)
Java applets bypass CSP protections
* MFSA 2016-62/CVE-2016-2834 (boo#983639) (bmo#1206283,
bmo#1221620, bmo#1241034, bmo#1241037)
Network Security Services (NSS) vulnerabilities
fixed by requiring NSS 3.23
packaging changes:
* cleanup configure options (boo#981695):
- notably remove GStreamer support which is gone from FF
* remove obsolete patches
- mozilla-libproxy.patch
- mozilla-repo.patch
-------------------------------------------------------------------
Wed May 25 16:36:23 UTC 2016 - badshah400@gmail.com

View File

@ -18,10 +18,10 @@
# changed with every update
%define major 46
%define mainver %major.0.1
%define major 47
%define mainver %major.0
%define update_channel release
%define releasedate 2016050300
%define releasedate 20160606000000
# PIE, full relro (x86_64 for now)
%define build_hardened 1
@ -44,12 +44,6 @@
%define __find_requires sh %{SOURCE4}
%global provfind sh -c "grep -v '.so' | %__find_provides"
%global __find_provides %provfind
%if 0%{?suse_version} > 1310
%define gstreamer_ver 1.0
%define gstreamer 1
%else
%define gstreamer_ver 0.10
%endif
# 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.
@ -81,7 +75,7 @@ BuildRequires: libnotify-devel
BuildRequires: libproxy-devel
BuildRequires: makeinfo
BuildRequires: mozilla-nspr-devel >= 4.12
BuildRequires: mozilla-nss-devel >= 3.22.3
BuildRequires: mozilla-nss-devel >= 3.23
BuildRequires: nss-shared-helper-devel
BuildRequires: python-devel
BuildRequires: startup-notification-devel
@ -90,9 +84,6 @@ BuildRequires: update-desktop-files
BuildRequires: xorg-x11-libXt-devel
BuildRequires: yasm
BuildRequires: zip
BuildRequires: pkgconfig(gstreamer-%gstreamer_ver)
BuildRequires: pkgconfig(gstreamer-app-%gstreamer_ver)
BuildRequires: pkgconfig(gstreamer-plugins-base-%gstreamer_ver)
BuildRequires: pkgconfig(libpulse)
%if 0%{?firefox_use_gtk3}
BuildRequires: pkgconfig(glib-2.0)
@ -100,26 +91,11 @@ BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(gtk+-3.0) >= 3.4.0
BuildRequires: pkgconfig(gtk+-unix-print-3.0)
%endif
# libavcodec is already used if available for H.264 but
# explicitely loaded by FF. For proper H.264 support the
# openSUSE delivered version is not sufficient but currently
# prevents even the use of the GStreamer method
# https://bugzilla.mozilla.org/show_bug.cgi?id=1234157
# to get H.264 working correctly libavcodec from packman
# is required. As of today the following recommends will
# pull in libavcodec52 from packman since it's the only
# package providing libavcodec but it's not loaded from
# Firefox as the minimal version is 53
#Recommends: libavcodec
%if 0%{?gstreamer} == 1
Requires: libgstreamer-1_0-0
Recommends: gstreamer-fluendo-mp3
Recommends: gstreamer-plugins-libav
%else
Requires: libgstreamer-0_10-0
Recommends: gstreamer-0_10-fluendo-mp3
Recommends: gstreamer-0_10-plugins-ffmpeg
%endif
# libavcodec is required for H.264 support but the
# openSUSE version is currently not able to play H.264
# therefore the Packman version is required
# minimum version of libavcodec is 53
Recommends: libavcodec-full >= 0.10.16
Version: %{mainver}
Release: 0
%if "%{name}" == "MozillaFirefox"
@ -165,15 +141,13 @@ Patch3: mozilla-kde.patch
Patch4: mozilla-preferences.patch
Patch5: mozilla-language.patch
Patch6: mozilla-ntlm-full-path.patch
Patch7: mozilla-repo.patch
Patch8: mozilla-openaes-decl.patch
Patch10: mozilla-no-stdcxx-check.patch
Patch11: mozilla-libproxy.patch
Patch12: mozilla-reduce-files-per-UnifiedBindings.patch
Patch13: mozilla-gtk3_20.patch
Patch14: mozilla-check_return.patch
Patch15: mozilla-gcc6.patch
Patch16: mozilla-exclude-nametablecpp.patch
Patch11: mozilla-reduce-files-per-UnifiedBindings.patch
Patch12: mozilla-gtk3_20.patch
Patch13: mozilla-check_return.patch
Patch14: mozilla-gcc6.patch
Patch15: mozilla-exclude-nametablecpp.patch
# Firefox/browser
Patch101: firefox-kde.patch
Patch102: firefox-no-default-ualocale.patch
@ -279,17 +253,15 @@ cd $RPM_BUILD_DIR/mozilla
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%if 0%{?firefox_use_gtk3}
%patch13 -p1
%patch12 -p1
%endif
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
# Firefox
%patch101 -p1
%patch102 -p1
@ -308,7 +280,7 @@ if test "$kdehelperversion" != %{kde_helper_version}; then
exit 1
fi
source %{SOURCE5}
export MOZ_SOURCE_STAMP=$REV
export MOZ_SOURCE_CHANGESET=$REV
export SOURCE_REPO=$REPO
export source_repo=$REPO
export MOZ_SOURCE_REPO=$REPO
@ -325,13 +297,11 @@ export CFLAGS="${CFLAGS/-g / }"
# Limit RAM usage during link
export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
%endif
%if 0%{?build_hardened}
%ifarch x86_64
export LDFLAGS="${LDFLAGS} -Wl,-z,relro,-z,now"
%endif
%endif
%ifarch ppc64 ppc64le
export CFLAGS="$CFLAGS -mminimal-toc"
%endif
@ -362,8 +332,8 @@ ac_add_options --enable-pie
ac_add_options --disable-optimize
%endif
%endif
%ifnarch ppc ppc64 ppc64le aarch64
ac_add_options --enable-elf-hack
%ifarch ppc ppc64 ppc64le aarch64 %arm
ac_add_options --disable-elf-hack
%endif
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
@ -373,16 +343,12 @@ ac_add_options --with-l10n-base=$RPM_BUILD_DIR/l10n
#ac_add_options --with-system-jpeg # libjpeg-turbo is used internally
#ac_add_options --with-system-png # doesn't work because of missing APNG support
ac_add_options --with-system-zlib
ac_add_options --disable-installer
ac_add_options --disable-updater
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --enable-startup-notification
#ac_add_options --enable-chrome-format=jar
ac_add_options --enable-update-channel=%{update_channel}
%if 0%{?gstreamer} == 1
ac_add_options --enable-gstreamer=1.0
%endif
%if %branding
ac_add_options --enable-official-branding
%endif
@ -391,7 +357,6 @@ ac_add_options --enable-libproxy
ac_add_options --disable-crashreporter
%endif
%ifarch %arm
ac_add_options --disable-elf-hack
ac_add_options --with-fpu=vfpv3-d16
ac_add_options --with-float-abi=hard
ac_add_options --with-arch=armv7-a

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2d9566f78b25b2af9028e7cfd2ada63ce5685ac8f80686751335dc2f5ddb7875
size 28388
oid sha256:c4152df4a9b9c731975f3805a2be896f2a5f5652f817564938867ee0aba6fbdc
size 28352

View File

@ -7,8 +7,8 @@
CHANNEL="release"
BRANCH="releases/mozilla-$CHANNEL"
RELEASE_TAG="FIREFOX_46_0_1_RELEASE"
VERSION="46.0.1"
RELEASE_TAG="FIREFOX_47_0_RELEASE"
VERSION="47.0"
# mozilla
if [ -d mozilla ]; then

View File

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

View File

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

View File

@ -1,11 +1,11 @@
# HG changeset patch
# Parent fd5629206dcf3f64d85ab177be6bc6076f0f1619
# Parent 4311c6bdf61ac317bc60b25cd89ff67662a75049
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,1175 @@
@@ -0,0 +1,1160 @@
+#filter substitution
+<?xml version="1.0"?>
+# -*- Mode: HTML -*-
@ -77,6 +77,8 @@ new file mode 100644
+
+<script type="application/javascript" src="chrome://global/content/contentAreaUtils.js"/>
+
+<script type="application/javascript" src="chrome://browser/content/downloads/downloads.js"/>
+<script type="application/javascript" src="chrome://browser/content/downloads/indicator.js"/>
+<script type="application/javascript" src="chrome://browser/content/places/editBookmarkOverlay.js"/>
+
+# All sets except for popupsets (commands, keys, stringbundles and broadcasters) *must* go into the
@ -188,12 +190,6 @@ new file mode 100644
+ <vbox>
+ <label id="editBookmarkPanelTitle"/>
+ <description id="editBookmarkPanelDescription"/>
+ <hbox>
+ <button id="editBookmarkPanelRemoveButton"
+ class="editBookmarkPanelHeaderButton"
+ oncommand="StarUI.removeBookmarkButtonCommand();"
+ accesskey="&editBookmark.removeBookmark.accessKey;"/>
+ </hbox>
+ </vbox>
+ </row>
+ <vbox id="editBookmarkPanelContent" flex="1" hidden="true"/>
@ -204,15 +200,15 @@ new file mode 100644
+ label="&editBookmark.done.label;"
+ default="true"
+ oncommand="StarUI.panel.hidePopup();"/>
+ <button id="editBookmarkPanelDeleteButton"
+ <button id="editBookmarkPanelRemoveButton"
+ class="editBookmarkPanelBottomButton"
+ label="&editBookmark.cancel.label;"
+ oncommand="StarUI.cancelButtonOnCommand();"/>
+ oncommand="StarUI.removeBookmarkButtonCommand();"
+ accesskey="&editBookmark.removeBookmark.accessKey;"/>
+#else
+ <button id="editBookmarkPanelDeleteButton"
+ <button id="editBookmarkPanelRemoveButton"
+ class="editBookmarkPanelBottomButton"
+ label="&editBookmark.cancel.label;"
+ oncommand="StarUI.cancelButtonOnCommand();"/>
+ oncommand="StarUI.removeBookmarkButtonCommand();"
+ accesskey="&editBookmark.removeBookmark.accessKey;"/>
+ <button id="editBookmarkPanelDoneButton"
+ class="editBookmarkPanelBottomButton"
+ label="&editBookmark.done.label;"
@ -471,6 +467,46 @@ new file mode 100644
+
+ <tooltip id="dynamic-shortcut-tooltip"
+ onpopupshowing="UpdateDynamicShortcutTooltipText(this);"/>
+
+ <menupopup id="SyncedTabsSidebarContext">
+ <menuitem label="&syncedTabs.context.openTab.label;"
+ accesskey="&syncedTabs.context.openTab.accesskey;"
+ id="syncedTabsOpenSelected"/>
+ <menuitem label="&syncedTabs.context.bookmarkSingleTab.label;"
+ accesskey="&syncedTabs.context.bookmarkSingleTab.accesskey;"
+ id="syncedTabsBookmarkSelected"/>
+ <menuseparator/>
+ <menuitem label="&syncSyncNowItem.label;"
+ accesskey="&syncSyncNowItem.accesskey;"
+ id="syncedTabsRefresh"/>
+ </menupopup>
+ <menupopup id="SyncedTabsSidebarTabsFilterContext"
+ class="textbox-contextmenu">
+ <menuitem label="&undoCmd.label;"
+ accesskey="&undoCmd.accesskey;"
+ cmd="cmd_undo"/>
+ <menuseparator/>
+ <menuitem label="&cutCmd.label;"
+ accesskey="&cutCmd.accesskey;"
+ cmd="cmd_cut"/>
+ <menuitem label="&copyCmd.label;"
+ accesskey="&copyCmd.accesskey;"
+ cmd="cmd_copy"/>
+ <menuitem label="&pasteCmd.label;"
+ accesskey="&pasteCmd.accesskey;"
+ cmd="cmd_paste"/>
+ <menuitem label="&deleteCmd.label;"
+ accesskey="&deleteCmd.accesskey;"
+ cmd="cmd_delete"/>
+ <menuseparator/>
+ <menuitem label="&selectAllCmd.label;"
+ accesskey="&selectAllCmd.accesskey;"
+ cmd="cmd_selectAll"/>
+ <menuseparator/>
+ <menuitem label="&syncSyncNowItem.label;"
+ accesskey="&syncSyncNowItem.accesskey;"
+ id="syncedTabsRefreshFilter"/>
+ </menupopup>
+ </popupset>
+
+#ifdef CAN_DRAW_IN_TITLEBAR
@ -667,10 +703,6 @@ new file mode 100644
+ <box id="notification-popup-box" hidden="true" align="center">
+ <image id="default-notification-icon" class="notification-anchor-icon" role="button"
+ aria-label="&urlbar.defaultNotificationAnchor.label;"/>
+ <!-- NB: the identity-notification-icon is used for persona-based auth and preffed
+ off by default. It hasn't been updated for some time and liable to being
+ removed.-->
+ <image id="identity-notification-icon" class="notification-anchor-icon" role="button"/>
+ <image id="geo-notification-icon" class="notification-anchor-icon" role="button"
+ aria-label="&urlbar.geolocationNotificationAnchor.label;"/>
+ <image id="addons-notification-icon" class="notification-anchor-icon" role="button"
@ -811,30 +843,6 @@ new file mode 100644
+ command="Browser:ShowAllBookmarks"
+ key="manBookmarkKb"/>
+ <menuseparator/>
+ <menuitem id="BMB_subscribeToPageMenuitem"
+#ifndef XP_MACOSX
+ class="menuitem-iconic subviewbutton"
+#else
+ class="subviewbutton"
+#endif
+ label="&subscribeToPageMenuitem.label;"
+ oncommand="return FeedHandler.subscribeToFeed(null, event);"
+ onclick="checkForMiddleClick(this, event);"
+ observes="singleFeedMenuitemState"/>
+ <menu id="BMB_subscribeToPageMenupopup"
+#ifndef XP_MACOSX
+ class="menu-iconic subviewbutton"
+#else
+ class="subviewbutton"
+#endif
+ label="&subscribeToPageMenupopup.label;"
+ observes="multipleFeedsMenuState">
+ <menupopup id="BMB_subscribeToPageSubmenuMenupopup"
+ onpopupshowing="return FeedHandler.buildFeedList(event.target);"
+ oncommand="return FeedHandler.subscribeToFeed(null, event);"
+ onclick="checkForMiddleClick(this, event);"/>
+ </menu>
+ <menuseparator/>
+ <menu id="BMB_bookmarksToolbar"
+ class="menu-iconic bookmark-item subviewbutton"
+ label="&personalbarCmd.label;"
@ -1133,29 +1141,6 @@ new file mode 100644
+
+ <vbox id="browser-bottombox" layer="true">
+ <notificationbox id="global-notificationbox" notificationside="bottom"/>
+ <toolbar id="developer-toolbar"
+ hidden="true">
+#ifdef XP_MACOSX
+ <toolbarbutton id="developer-toolbar-closebutton"
+ class="devtools-closebutton"
+ oncommand="DeveloperToolbar.hide();"
+ tooltiptext="&devToolbarCloseButton.tooltiptext;"/>
+#endif
+ <stack class="gclitoolbar-stack-node" flex="1">
+ <textbox class="gclitoolbar-input-node" rows="1"/>
+ <hbox class="gclitoolbar-complete-node"/>
+ </stack>
+ <toolbarbutton id="developer-toolbar-toolbox-button"
+ class="developer-toolbar-button"
+ observes="devtoolsMenuBroadcaster_DevToolbox"
+ tooltiptext="&devToolbarToolsButton.tooltip;"/>
+#ifndef XP_MACOSX
+ <toolbarbutton id="developer-toolbar-closebutton"
+ class="devtools-closebutton"
+ oncommand="DeveloperToolbar.hide();"
+ tooltiptext="&devToolbarCloseButton.tooltiptext;"/>
+#endif
+ </toolbar>
+ </vbox>
+
+ <svg:svg height="0">
@ -1266,7 +1251,7 @@ diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/ns
diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js
--- a/browser/components/preferences/in-content/main.js
+++ b/browser/components/preferences/in-content/main.js
@@ -19,16 +19,22 @@ var gMainPane = {
@@ -23,16 +23,22 @@ var gMainPane = {
init: function ()
{
function setEventListener(aId, aEventType, aCallback)
@ -1287,12 +1272,12 @@ diff --git a/browser/components/preferences/in-content/main.js b/browser/compone
// 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
// 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.
@@ -704,16 +710,27 @@ var gMainPane = {
*/
setDefaultBrowser: function()
{
@@ -736,16 +742,27 @@ var gMainPane = {
let alwaysCheckPref = document.getElementById("browser.shell.checkDefaultBrowser");
alwaysCheckPref.value = true;
let shellSvc = getShellService();
if (!shellSvc)
return;
@ -1300,10 +1285,10 @@ diff --git a/browser/components/preferences/in-content/main.js b/browser/compone
shellSvc.setDefaultBrowser(true, false);
+ if (kde_session == 1) {
+ var shellObj = Components.classes["@mozilla.org/file/local;1"]
+ .createInstance(Components.interfaces.nsILocalFile);
+ .createInstance(Components.interfaces.nsILocalFile);
+ shellObj.initWithPath("/usr/bin/kwriteconfig");
+ var process = Components.classes["@mozilla.org/process/util;1"]
+ .createInstance(Components.interfaces.nsIProcess);
+ .createInstance(Components.interfaces.nsIProcess);
+ process.init(shellObj);
+ var args = ["--file", "kdeglobals", "--group", "General", "--key",
+ "BrowserApplication", "firefox"];
@ -1313,8 +1298,8 @@ diff --git a/browser/components/preferences/in-content/main.js b/browser/compone
Cu.reportError(ex);
return;
}
let selectedIndex =
shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
let selectedIndex = shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
document.getElementById("setDefaultPane").selectedIndex = selectedIndex;
}
diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build
@ -1632,7 +1617,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
@@ -703,16 +703,17 @@
@@ -697,16 +697,17 @@
@RESPATH@/greprefs.js
@RESPATH@/defaults/autoconfig/prefcalls.js
@RESPATH@/browser/defaults/permissions

View File

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

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

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

View File

@ -1,90 +1,92 @@
ach 658769a76613
ach 9a0c8e338b70
af 431e02c10881
an fe436c75f71d
ar bbcf06888dc5
as 8313f975ae77
ast 0300b60cd340
az fd96727d2a26
az db362112cd4d
be b72077740aac
bg 9f7507dd2b92
bn-BD fe0a6bb82a2d
bn-BD 1dac94619464
bn-IN a2ea6b87d80d
br 95b028350e29
br e4c45f737a88
bs cfee6f5b1e50
ca e8ca2d46b4a8
cs ed6004b91b51
cy 5bbcbba9b054
da 324fe068c0b9
de 217ff3f0054a
dsb 7cdfb5d9dc5d
ca 55814ed0a2ee
cak 244b8a568146
cs a98b5d34950d
cy 02a8a09a2a24
da 1976f45a00fb
de 69c491b3e8dd
dsb 60185ee5350d
el 22b959c9a739
en-GB 36012ab486ad
en-ZA 1c91f05aae5a
eo 049c1b065f4c
es-AR b3647b1d5927
es-CL e45186f983b9
es-ES 6fe131a8b07f
es-MX 4cd511663283
en-GB ac4d309f11aa
en-ZA 52a936eeeea1
eo 9402e7dc1816
es-AR d3e6fdb0980e
es-CL 247114b95260
es-ES 05251e5fad44
es-MX 198b582408f2
et ecae9df9c92a
eu 1a65e2c03dda
fa e5993d9fb76e
eu 5b00fd411da4
fa c64ea222eb3a
ff 8373353b43c4
fi b743718650bc
fr 7d0bb8edc149
fy-NL 02ee99ad3f83
ga-IE 713ecb614f77
gd e5b86736a5f9
fi 485cd6730972
fr 262385fe83a0
fy-NL d133532b4a76
ga-IE 2217b283ff59
gd 664cfe62d15b
gl c869caff337a
gn 65b2894520b6
gu-IN 6245b4309461
he ee92b661d299
he 2d122d643e0b
hi-IN bba2a926e4f8
hr 8502beb4ee68
hsb c91a11523487
hu 09bbddfef7ee
hy-AM 3d7a9324fb25
id cb8f841d30d2
is 46c99105eb3b
it 6063a6d94e13
ja 5ff86cadfe9a
ja-JP-mac ab760b3dcdd1
kk 5a7bd05bf942
hr 5e68406d5630
hsb ed7044697b0a
hu ea25586b7644
hy-AM 723627d1c0a4
id d84757c01f40
is 0b19292ab8a3
it 9ada32a4f24b
ja 6374f9dd3854
ja-JP-mac 28d0060377c0
kk 58b2a6152124
km 339790840ac1
kn b23d8fbcf41a
ko 5f303ed16778
kn a7e2c93d27ad
ko 4c2bafb385f3
lij e9113fac3a93
lt 628e96e62e44
lv 063998fdecf8
lt 64c104a758bf
lv 918ea0cd0aca
mai ce010a305377
mk ffdf2a789185
ml 1b85d75836cd
mr 553ff31f4edd
mr 943d62e6e06d
ms 41bbf86ac0d9
nb-NO 5e6e5710fac9
nl ac486141ab40
nn-NO be9e3eeb75fb
nb-NO bee48c9ea2d4
nl 3bdea753600d
nn-NO 1deb8231f357
or febd1b04dbfc
pa-IN 6c5ed1be55fb
pl 49e141118acb
pt-BR cd1aef7b5045
pt-PT 2e4fd2a1f98f
rm 0a52db6a6117
ro c6ac34be77b1
ru 3f0b3c8e19a4
pl c9e8c3b4977c
pt-BR ba6e3510ab03
pt-PT 89d85625e259
rm 5c20929daf23
ro b1baa279bda4
ru 2248b98b11c2
si 03a3b09a2203
sk 3505a5f99bff
sl 1e098ab8c27a
sk b1a81bf66ed4
sl 6079300745a1
son 3ae9a4ff0453
sq c24e570a4207
sr 896d72a0fa21
sv-SE ea1de38fe731
sq bc47aefcea37
sr 93d5749016bd
sv-SE 711ed419239c
ta f9dbc2cca1fb
te 286ff9885ea2
th d630f05d665f
tr b751d2d9b6ee
uk c5cdb9068667
uz dc28cf99c5cf
tr 4c05084f5ef2
uk 6b23f6bb9dcb
uz 1209fe62df1c
vi 68ce305343a3
xh f3eb8f92afe8
zh-CN d73d448f89d6
zh-TW 44c9950bb3e6
xh 8466fb6c8797
zh-CN bedbf795f45e
zh-TW 8a8fcc28bce0

View File

@ -1,5 +1,5 @@
# HG changeset patch
# Parent 61cdc9af8ceaf75083e751e0d6497feddc26f7ba
# Parent f2726ebfae7cdded8e7ca6030829b0a3fae4e438
Description: Add KDE integration to Firefox (toolkit parts)
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
Author: Lubos Lunak <lunak@suse.com>
@ -27,7 +27,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
#include "prefread.h"
#include "prefapi_private_data.h"
@@ -1135,16 +1136,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
@@ -1138,16 +1139,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
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;
bool hasMore;
@@ -1160,17 +1179,17 @@ static nsresult pref_LoadPrefsInDirList(
@@ -1163,17 +1182,17 @@ static nsresult pref_LoadPrefsInDirList(
nsAutoCString 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);
NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
@@ -1264,24 +1283,36 @@ static nsresult pref_InitInitialObjects(
@@ -1267,24 +1286,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 */
static const char* specialFiles[] = {
#if defined(XP_MACOSX)
@ -325,7 +325,7 @@ new file mode 100644
+ xmlns="http://www.mozilla.org/xbl"
+ xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:xbl="http://www.mozilla.org/xbl">
+
+
+ <binding id="dialog" extends="chrome://global/content/bindings/general.xml#root-element">
+ <resources>
+ <stylesheet src="chrome://global/skin/dialog.css"/>
@ -334,10 +334,10 @@ new file mode 100644
+ <xul:vbox class="box-inherit dialog-content-box" flex="1">
+ <children/>
+ </xul:vbox>
+
+
+ <xul:hbox class="dialog-button-box" anonid="buttons"
+ xbl:inherits="pack=buttonpack,align=buttonalign,dir=buttondir,orient=buttonorient"
+#ifdef XP_UNIX_GNOME
+#ifdef XP_UNIX
+ >
+ <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="help" class="dialog-button" hidden="true"/>
@ -349,12 +349,12 @@ new file mode 100644
+#elif XP_UNIX
+ >
+ <xul:button dlgtype="help" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
+ <xul:spacer anonid="spacer" flex="1"/>
+ <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
+ <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="cancel" class="dialog-button"/>
+ <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
+ <xul:spacer anonid="spacer" flex="1"/>
+ <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
+ <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
+ <xul:button dlgtype="cancel" class="dialog-button"/>
+ <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
+#else
+ pack="end">
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
@ -403,7 +403,7 @@ new file mode 100644
+ ]]>
+ </body>
+ </method>
+
+
+ <method name="cancelDialog">
+ <body>
+ <![CDATA[
@ -411,7 +411,7 @@ new file mode 100644
+ ]]>
+ </body>
+ </method>
+
+
+ <method name="getButton">
+ <parameter name="aDlgType"/>
+ <body>
@ -462,7 +462,7 @@ new file mode 100644
+ <![CDATA[
+ var xOffset = screen.availWidth/2 - window.outerWidth/2;
+ var yOffset = screen.availHeight/2 - window.outerHeight/2; //(opener.outerHeight *2)/10;
+
+
+ xOffset = xOffset > 0 ? xOffset : 0;
+ yOffset = yOffset > 0 ? yOffset : 0;
+ window.moveTo(xOffset, yOffset);
@ -534,7 +534,7 @@ new file mode 100644
+ setTimeout(focusInit, 0);
+ ]]>
+ </body>
+ </method>
+ </method>
+
+ <property name="mStrBundle">
+ <getter>
@ -549,7 +549,7 @@ new file mode 100644
+ return this._mStrBundle;
+ ]]></getter>
+ </property>
+
+
+ <method name="_configureButtons">
+ <parameter name="aButtons"/>
+ <body>
@ -621,7 +621,7 @@ new file mode 100644
+
+ // ensure that hitting enter triggers the default button command
+ this.defaultButton = this.defaultButton;
+
+
+ // if there is a special button configuration, use it
+ if (aButtons) {
+ // expect a comma delimited list of dlgtype values
@ -634,7 +634,7 @@ new file mode 100644
+ shown[list[i].replace(/ /g, "")] = true;
+
+ // hide/show the buttons we want
+ for (dlgtype in buttons)
+ for (dlgtype in buttons)
+ buttons[dlgtype].hidden = !shown[dlgtype];
+
+ let { AppConstants } =
@ -682,7 +682,7 @@ new file mode 100644
+ ]]>
+ </body>
+ </method>
+
+
+ <method name="_doButtonCommand">
+ <parameter name="aDlgType"/>
+ <body>
@ -706,17 +706,17 @@ new file mode 100644
+ ]]>
+ </body>
+ </method>
+
+
+ <method name="_fireButtonEvent">
+ <parameter name="aDlgType"/>
+ <body>
+ <![CDATA[
+ var event = document.createEvent("Events");
+ event.initEvent("dialog"+aDlgType, true, true);
+
+
+ // handle dom event handlers
+ var noCancel = this.dispatchEvent(event);
+
+
+ // handle any xml attribute event handlers
+ var handler = this.getAttribute("ondialog"+aDlgType);
+ if (handler != "") {
@ -725,7 +725,7 @@ new file mode 100644
+ if (returned == false)
+ noCancel = false;
+ }
+
+
+ return noCancel;
+ ]]>
+ </body>
@ -746,7 +746,7 @@ new file mode 100644
+ </method>
+
+ </implementation>
+
+
+ <handlers>
+ <handler event="keypress" keycode="VK_RETURN"
+ group="system" action="this._hitEnter(event);"/>
@ -782,7 +782,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,1406 @@
@@ -0,0 +1,1408 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE bindings [
@ -849,7 +849,7 @@ new file mode 100644
+ ]]>
+ </body>
+ </method>
+
+
+ <method name="fireChangedEvent">
+ <parameter name="aPreference"/>
+ <body>
@ -866,7 +866,7 @@ new file mode 100644
+ ]]>
+ </body>
+ </method>
+
+
+ <field name="service">
+ Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefService);
@ -916,11 +916,11 @@ new file mode 100644
+ .addObserver(this.name, this.preferences, false);
+ // 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
+ // preferences, to pick up any edits a user may have made.
+ // preferences, to pick up any edits a user may have made.
+
+ var secMan = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
+ .getService(Components.interfaces.nsIScriptSecurityManager);
+ if (this.preferences.type == "child" &&
+ if (this.preferences.type == "child" &&
+ !this.instantApply && window.opener &&
+ secMan.isSystemPrincipal(window.opener.document.nodePrincipal)) {
+ var pdoc = window.opener.document;
@ -961,13 +961,13 @@ new file mode 100644
+ <setter>
+ if (val == this.name)
+ return val;
+
+
+ this.preferences.rootBranchInternal
+ .removeObserver(this.name, this.preferences);
+ this.setAttribute('name', val);
+ this.preferences.rootBranchInternal
+ .addObserver(val, this.preferences, false);
+
+
+ return val;
+ </setter>
+ </property>
@ -994,20 +994,20 @@ new file mode 100644
+ </body>
+ </method>
+ <property name="value" onget="return this._value" onset="return this._setValue(val);"/>
+
+
+ <property name="locked">
+ <getter>
+ return this.preferences.rootBranch.prefIsLocked(this.name);
+ </getter>
+ </property>
+
+
+ <property name="disabled">
+ <getter>
+ return this.getAttribute("disabled") == "true";
+ </getter>
+ <setter>
+ <![CDATA[
+ if (val)
+ if (val)
+ this.setAttribute("disabled", "true");
+ else
+ this.removeAttribute("disabled");
@ -1018,24 +1018,24 @@ new file mode 100644
+ var elements = document.getElementsByAttribute("preference", this.id);
+ for (var i = 0; i < elements.length; ++i) {
+ elements[i].disabled = val;
+
+
+ var labels = document.getElementsByAttribute("control", elements[i].id);
+ for (var j = 0; j < labels.length; ++j)
+ labels[j].disabled = val;
+ }
+
+
+ return val;
+ ]]>
+ </setter>
+ </property>
+
+
+ <property name="tabIndex">
+ <getter>
+ return parseInt(this.getAttribute("tabindex"));
+ </getter>
+ <setter>
+ <![CDATA[
+ if (val)
+ if (val)
+ this.setAttribute("tabindex", val);
+ else
+ this.removeAttribute("tabindex");
@ -1046,12 +1046,12 @@ new file mode 100644
+ var elements = document.getElementsByAttribute("preference", this.id);
+ for (var i = 0; i < elements.length; ++i) {
+ elements[i].tabIndex = val;
+
+
+ var labels = document.getElementsByAttribute("control", elements[i].id);
+ for (var j = 0; j < labels.length; ++j)
+ labels[j].tabIndex = val;
+ }
+
+
+ return val;
+ ]]>
+ </setter>
@ -1065,7 +1065,7 @@ new file mode 100644
+ ]]>
+ </getter>
+ </property>
+
+
+ <method name="reset">
+ <body>
+ // defer reset until preference update
@ -1073,7 +1073,7 @@ new file mode 100644
+ </body>
+ </method>
+
+ <field name="_useDefault">false</field>
+ <field name="_useDefault">false</field>
+ <property name="defaultValue">
+ <getter>
+ <![CDATA[
@ -1084,27 +1084,27 @@ new file mode 100644
+ ]]>
+ </getter>
+ </property>
+
+
+ <property name="_branch">
+ <getter>
+ return this._useDefault ? this.preferences.defaultBranch : this.preferences.rootBranch;
+ </getter>
+ </property>
+
+
+ <field name="batching">false</field>
+
+
+ <method name="_reportUnknownType">
+ <body>
+ <![CDATA[
+ var consoleService = Components.classes["@mozilla.org/consoleservice;1"]
+ .getService(Components.interfaces.nsIConsoleService);
+ var msg = "<preference> with id='" + this.id + "' and name='" +
+ var msg = "<preference> with id='" + this.id + "' and name='" +
+ this.name + "' has unknown type '" + this.type + "'.";
+ consoleService.logStringMessage(msg);
+ ]]>
+ </body>
+ </method>
+
+
+ <property name="valueFromPreferences">
+ <getter>
+ <![CDATA[
@ -1189,7 +1189,7 @@ new file mode 100644
+ if (!lf.exists())
+ lf.initWithPath(val);
+ }
+ else
+ else
+ lf = val.QueryInterface(Components.interfaces.nsILocalFile);
+ this.preferences.rootBranch
+ .setComplexValue(this.name, Components.interfaces.nsILocalFile, lf);
@ -1203,7 +1203,7 @@ new file mode 100644
+ ]]>
+ </setter>
+ </property>
+
+
+ <method name="setElementValue">
+ <parameter name="aElement"/>
+ <body>
@ -1220,7 +1220,7 @@ new file mode 100644
+ try {
+ var event = document.createEvent("Events");
+ event.initEvent("syncfrompreference", true, true);
+ var f = new Function ("event",
+ var f = new Function ("event",
+ aElement.getAttribute("onsyncfrompreference"));
+ rv = f.call(aElement, event);
+ }
@ -1228,20 +1228,22 @@ new file mode 100644
+ Components.utils.reportError(e);
+ }
+ }
+ var val = rv !== undefined ? rv : (this.instantApply ? this.valueFromPreferences : this.value);
+ var val = rv;
+ if (val === undefined)
+ val = this.instantApply ? this.valueFromPreferences : this.value;
+ // if the preference is marked for reset, show default value in UI
+ if (val === undefined)
+ val = this.defaultValue;
+
+ /**
+ * Initialize a UI element property with a value. Handles the case
+ * Initialize a UI element property with a value. Handles the case
+ * where an element has not yet had a XBL binding attached for it and
+ * the property setter does not yet exist by setting the same attribute
+ * on the XUL element using DOM apis and assuming the element's
+ * constructor or property getters appropriately handle this state.
+ * on the XUL element using DOM apis and assuming the element's
+ * constructor or property getters appropriately handle this state.
+ */
+ function setValue(element, attribute, value) {
+ if (attribute in element)
+ if (attribute in element)
+ element[attribute] = value;
+ else
+ element.setAttribute(attribute, value);
@ -1273,19 +1275,19 @@ new file mode 100644
+ try {
+ var event = document.createEvent("Events");
+ event.initEvent("synctopreference", true, true);
+ var f = new Function ("event",
+ var f = new Function ("event",
+ aElement.getAttribute("onsynctopreference"));
+ var rv = f.call(aElement, event);
+ if (rv !== undefined)
+ if (rv !== undefined)
+ return rv;
+ }
+ catch (e) {
+ Components.utils.reportError(e);
+ }
+ }
+
+
+ /**
+ * Read the value of an attribute from an element, assuming the
+ * Read the value of an attribute from an element, assuming the
+ * attribute is a property on the element's node API. If the property
+ * is not present in the API, then assume its value is contained in
+ * an attribute, as is the case before a binding has been attached.
@ -1313,7 +1315,7 @@ new file mode 100644
+ ]]>
+ </body>
+ </method>
+
+
+ <method name="isElementEditable">
+ <parameter name="aElement"/>
+ <body>
@ -1329,26 +1331,26 @@ new file mode 100644
+ return true;
+ }
+ return aElement.getAttribute("preference-editable") == "true";
+ ]]>
+ ]]>
+ </body>
+ </method>
+
+
+ <method name="updateElements">
+ <body>
+ <![CDATA[
+ if (!this.id)
+ return;
+
+ // This "change" event handler tracks changes made to preferences by
+ // sources other than the user in this window.
+ // This "change" event handler tracks changes made to preferences by
+ // sources other than the user in this window.
+ var elements = document.getElementsByAttribute("preference", this.id);
+ for (var i = 0; i < elements.length; ++i)
+ for (var i = 0; i < elements.length; ++i)
+ this.setElementValue(elements[i]);
+ ]]>
+ </body>
+ </method>
+ </implementation>
+
+
+ <handlers>
+ <handler event="change">
+ this.updateElements();
@ -1423,7 +1425,7 @@ new file mode 100644
+ // no buttons on Mac except Help
+ cancelButton.hidden = true;
+ // Move Help button to the end
+ document.getAnonymousElementByAttribute(this, "anonid", "spacer").hidden = true;
+ document.getAnonymousElementByAttribute(this, "anonid", "spacer").hidden = true;
+ // Also, don't fire onDialogAccept on enter
+ acceptButton.disabled = true;
+ } else {
@ -1500,26 +1502,26 @@ new file mode 100644
+ onget="return document.getAnonymousElementByAttribute(this, 'class', 'paneDeckContainer');"/>
+ <property name="_selector"
+ onget="return document.getAnonymousElementByAttribute(this, 'anonid', 'selector');"/>
+ <property name="lastSelected"
+ <property name="lastSelected"
+ onget="return this.getAttribute('lastSelected');">
+ <setter>
+ this.setAttribute("lastSelected", val);
+ this.setAttribute("lastSelected", val);
+ document.persist(this.id, "lastSelected");
+ return val;
+ </setter>
+ </setter>
+ </property>
+ <property name="currentPane"
+ onset="return this._currentPane = val;">
+ <getter>
+ if (!this._currentPane)
+ this._currentPane = this.preferencePanes[0];
+
+
+ return this._currentPane;
+ </getter>
+ </getter>
+ </property>
+ <field name="_currentPane">null</field>
+
+
+
+
+ <method name="_makePaneButton">
+ <parameter name="aPaneElement"/>
+ <body>
@ -1551,16 +1553,16 @@ new file mode 100644
+ {
+ this._pane = aPane;
+ }
+ OverlayLoadObserver.prototype = {
+ OverlayLoadObserver.prototype = {
+ _outer: this,
+ observe: function (aSubject, aTopic, aData)
+ observe: function (aSubject, aTopic, aData)
+ {
+ this._pane.loaded = true;
+ this._outer._fireEvent("paneload", this._pane);
+ this._outer._selectPane(this._pane);
+ }
+ };
+
+
+ var obs = new OverlayLoadObserver(aPaneElement);
+ document.loadOverlay(aPaneElement.src, obs);
+ }
@ -1569,13 +1571,13 @@ new file mode 100644
+ ]]>
+ </body>
+ </method>
+
+
+ <method name="_fireEvent">
+ <parameter name="aEventName"/>
+ <parameter name="aTarget"/>
+ <body>
+ <![CDATA[
+ // Panel loaded, synthesize a load event.
+ // Panel loaded, synthesize a load event.
+ try {
+ var event = document.createEvent("Events");
+ event.initEvent(aEventName, true, true);
@ -1586,16 +1588,16 @@ new file mode 100644
+ if (rv == false)
+ cancel = true;
+ }
+ return !cancel;
+ return !cancel;
+ }
+ catch (e) {
+ catch (e) {
+ Components.utils.reportError(e);
+ }
+ return false;
+ ]]>
+ </body>
+ </method>
+
+
+ <field name="_initialized">false</field>
+ <method name="_selectPane">
+ <parameter name="aPaneElement"/>
@ -1614,13 +1616,13 @@ new file mode 100644
+ else
+ helpButton.hidden = true;
+
+ // Find this pane's index in the deck and set the deck's
+ // Find this pane's index in the deck and set the deck's
+ // selectedIndex to that value to switch to it.
+ var prefpanes = this.preferencePanes;
+ for (var i = 0; i < prefpanes.length; ++i) {
+ if (prefpanes[i] == aPaneElement) {
+ this._paneDeck.selectedIndex = i;
+
+
+ if (this.type != "child") {
+ if (aPaneElement.hasAttribute("flex") && this._shouldAnimate &&
+ prefpanes.length > 1)
@ -1673,7 +1675,7 @@ new file mode 100644
+ ]]>
+ </body>
+ </method>
+
+
+ <property name="_shouldAnimate">
+ <getter>
+ <![CDATA[
@ -1690,7 +1692,7 @@ new file mode 100644
+ ]]>
+ </getter>
+ </property>
+
+
+ <method name="animate">
+ <parameter name="aOldPane"/>
+ <parameter name="aNewPane"/>
@ -1698,7 +1700,7 @@ new file mode 100644
+ <![CDATA[
+ // if we are already resizing, use currentHeight
+ var oldHeight = this._currentHeight ? this._currentHeight : aOldPane.contentHeight;
+
+
+ this._multiplier = aNewPane.contentHeight > oldHeight ? 1 : -1;
+ var sizeDelta = Math.abs(oldHeight - aNewPane.contentHeight);
+ this._animateRemainder = sizeDelta % this._animateIncrement;
@ -1707,7 +1709,7 @@ new file mode 100644
+ ]]>
+ </body>
+ </method>
+
+
+ <property name="_sizeIncrement">
+ <getter>
+ <![CDATA[
@ -1717,7 +1719,7 @@ new file mode 100644
+ if ((this._multiplier > 0 && this._currentHeight >= lastSelectedPane.contentHeight) ||
+ (this._multiplier < 0 && this._currentHeight <= lastSelectedPane.contentHeight))
+ return 0;
+
+
+ if ((this._multiplier > 0 && newHeight > lastSelectedPane.contentHeight) ||
+ (this._multiplier < 0 && newHeight < lastSelectedPane.contentHeight))
+ increment = this._animateRemainder * this._multiplier;
@ -1725,14 +1727,14 @@ new file mode 100644
+ ]]>
+ </getter>
+ </property>
+
+
+ <method name="notify">
+ <parameter name="aTimer"/>
+ <body>
+ <![CDATA[
+ if (!document)
+ aTimer.cancel();
+
+
+ if (aTimer == this._animateTimer) {
+ var increment = this._sizeIncrement;
+ if (increment != 0) {
@ -1756,39 +1758,39 @@ new file mode 100644
+ ]]>
+ </body>
+ </method>
+
+
+ <method name="_setUpAnimationTimer">
+ <parameter name="aStartHeight"/>
+ <body>
+ <![CDATA[
+ if (!this._animateTimer)
+ if (!this._animateTimer)
+ this._animateTimer = Components.classes["@mozilla.org/timer;1"]
+ .createInstance(Components.interfaces.nsITimer);
+ else
+ this._animateTimer.cancel();
+ this._currentHeight = aStartHeight;
+
+ this._animateTimer.initWithCallback(this, this._animateDelay,
+
+ this._animateTimer.initWithCallback(this, this._animateDelay,
+ Components.interfaces.nsITimer.TYPE_REPEATING_SLACK);
+ ]]>
+ </body>
+ </method>
+
+
+ <method name="_setUpFadeTimer">
+ <body>
+ <![CDATA[
+ if (!this._fadeTimer)
+ if (!this._fadeTimer)
+ this._fadeTimer = Components.classes["@mozilla.org/timer;1"]
+ .createInstance(Components.interfaces.nsITimer);
+ else
+ this._fadeTimer.cancel();
+
+ this._fadeTimer.initWithCallback(this, this._fadeDelay,
+
+ this._fadeTimer.initWithCallback(this, this._fadeDelay,
+ Components.interfaces.nsITimer.TYPE_REPEATING_SLACK);
+ ]]>
+ </body>
+ </method>
+
+
+ <field name="_animateTimer">null</field>
+ <field name="_fadeTimer">null</field>
+ <field name="_animateDelay">15</field>
@ -1804,13 +1806,13 @@ new file mode 100644
+ <body>
+ <![CDATA[
+ this.appendChild(aPaneElement);
+
+
+ // Set up pane button
+ this._makePaneButton(aPaneElement);
+ ]]>
+ </body>
+ </method>
+
+
+ <method name="openSubDialog">
+ <parameter name="aURL"/>
+ <parameter name="aFeatures"/>
@ -1819,7 +1821,7 @@ new file mode 100644
+ return openDialog(aURL, "", "modal,centerscreen,resizable=no" + (aFeatures != "" ? ("," + aFeatures) : ""), aParams);
+ </body>
+ </method>
+
+
+ <method name="openWindow">
+ <parameter name="aWindowType"/>
+ <parameter name="aURL"/>
@ -1856,29 +1858,29 @@ new file mode 100644
+ .getService(Components.interfaces.nsIScriptSecurityManager);
+ if (this.type == "child" && window.opener &&
+ secMan.isSystemPrincipal(window.opener.document.nodePrincipal)) {
+ var psvc = Components.classes["@mozilla.org/preferences-service;1"]
+ let psvc = Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefBranch);
+ var pdocEl = window.opener.document.documentElement;
+ if (pdocEl.instantApply) {
+ var panes = this.preferencePanes;
+ for (var i = 0; i < panes.length; ++i)
+ let panes = this.preferencePanes;
+ for (let i = 0; i < panes.length; ++i)
+ panes[i].writePreferences(true);
+ }
+ else {
+ // 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;
+ if (pdoc.documentElement.localName == "prefwindow") {
+ var currentPane = pdoc.documentElement.currentPane;
+ var id = window.location.href + "#childprefs";
+ var childPrefs = pdoc.getElementById(id);
+ if (!childPrefs) {
+ var childPrefs = pdoc.createElement("preferences");
+ childPrefs = pdoc.createElement("preferences");
+ currentPane.appendChild(childPrefs);
+ childPrefs.id = id;
+ }
+ var panes = this.preferencePanes;
+ for (var i = 0; i < panes.length; ++i) {
+ let panes = this.preferencePanes;
+ for (let i = 0; i < panes.length; ++i) {
+ var preferences = panes[i].preferences;
+ for (var j = 0; j < preferences.length; ++j) {
+ // Try to find a preference element for the same preference.
@ -1909,11 +1911,11 @@ new file mode 100644
+ }
+ }
+ else {
+ var panes = this.preferencePanes;
+ let panes = this.preferencePanes;
+ for (var i = 0; i < panes.length; ++i)
+ panes[i].writePreferences(false);
+
+ var psvc = Components.classes["@mozilla.org/preferences-service;1"]
+ let psvc = Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefService);
+ psvc.savePrefFile(null);
+ }
@ -1955,7 +1957,7 @@ new file mode 100644
+ </handler>
+ </handlers>
+ </binding>
+
+
+ <binding id="prefpane">
+ <resources>
+ <stylesheet src="chrome://global/skin/preferences.css"/>
@ -1990,20 +1992,20 @@ new file mode 100644
+ ]]>
+ </body>
+ </method>
+
+ <property name="src"
+
+ <property name="src"
+ onget="return this.getAttribute('src');"
+ onset="this.setAttribute('src', val); return val;"/>
+ <property name="selected"
+ <property name="selected"
+ onget="return this.getAttribute('selected') == 'true';"
+ onset="this.setAttribute('selected', val); return val;"/>
+ <property name="image"
+ <property name="image"
+ onget="return this.getAttribute('image');"
+ onset="this.setAttribute('image', val); return val;"/>
+ <property name="label"
+ <property name="label"
+ onget="return this.getAttribute('label');"
+ onset="this.setAttribute('label', val); return val;"/>
+
+
+ <property name="preferenceElements"
+ onget="return this.getElementsByAttribute('preference', '*');"/>
+ <property name="preferences"
@ -2027,30 +2029,30 @@ new file mode 100644
+ </property>
+
+ <field name="_loaded">false</field>
+ <property name="loaded"
+ <property name="loaded"
+ onget="return !this.src ? true : this._loaded;"
+ onset="this._loaded = val; return val;"/>
+
+
+ <method name="preferenceForElement">
+ <parameter name="aElement"/>
+ <body>
+ return document.getElementById(aElement.getAttribute("preference"));
+ </body>
+ </method>
+
+
+ <method name="getPreferenceElement">
+ <parameter name="aStartElement"/>
+ <body>
+ <![CDATA[
+ var temp = aStartElement;
+ while (temp && temp.nodeType == Node.ELEMENT_NODE &&
+ while (temp && temp.nodeType == Node.ELEMENT_NODE &&
+ !temp.hasAttribute("preference"))
+ temp = temp.parentNode;
+ return temp.nodeType == Node.ELEMENT_NODE ? temp : aStartElement;
+ ]]>
+ </body>
+ </method>
+
+
+ <field name="DeferredTask" readonly="true">
+ let targetObj = {};
+ Components.utils.import("resource://gre/modules/DeferredTask.jsm", targetObj);
@ -2106,7 +2108,7 @@ new file mode 100644
+ ]]>
+ </body>
+ </method>
+
+
+ <property name="contentHeight">
+ <getter>
+ var targetHeight = parseInt(window.getComputedStyle(this._content, "").height);
@ -2121,25 +2123,25 @@ new file mode 100644
+ </implementation>
+ <handlers>
+ <handler event="command">
+ // This "command" event handler tracks changes made to preferences by
+ // This "command" event handler tracks changes made to preferences by
+ // the user in this window.
+ if (event.sourceEvent)
+ event = event.sourceEvent;
+ this.userChangedValue(event.target);
+ </handler>
+ <handler event="select">
+ // This "select" event handler tracks changes made to colorpicker
+ // This "select" event handler tracks changes made to colorpicker
+ // preferences by the user in this window.
+ if (event.target.localName == "colorpicker")
+ if (event.target.localName == "colorpicker")
+ this.userChangedValue(event.target);
+ </handler>
+ <handler event="change">
+ // This "change" event handler tracks changes made to preferences by
+ // the user in this window.
+ // This "change" event handler tracks changes made to preferences by
+ // the user in this window.
+ this.userChangedValue(event.target);
+ </handler>
+ <handler event="input">
+ // This "input" event handler tracks changes made to preferences by
+ // This "input" event handler tracks changes made to preferences by
+ // the user in this window.
+ this.userChangedValue(event.target);
+ </handler>
@ -2156,11 +2158,11 @@ new file mode 100644
+ dump("*** No preference found for " + elements[i].getAttribute("preference") + "\n");
+ }
+ }
+ ]]>
+ ]]>
+ </handler>
+ </handlers>
+ </binding>
+
+
+ <binding id="panebutton" role="xul:listitem"
+ extends="chrome://global/content/bindings/radio.xml#radio">
+ <resources>

View File

@ -1,26 +0,0 @@
# HG changeset patch
# User Wolfgang Rosenauer <wr@rosenauer.org>
# Parent 95b421ca30846be2b5d7230d72263e6dff042d0b
Bug 1220399 - building with libproxy support fails
diff --git a/toolkit/system/unixproxy/nsLibProxySettings.cpp b/toolkit/system/unixproxy/nsLibProxySettings.cpp
--- a/toolkit/system/unixproxy/nsLibProxySettings.cpp
+++ b/toolkit/system/unixproxy/nsLibProxySettings.cpp
@@ -2,16 +2,17 @@
/* 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/. */
#include "nsISystemProxySettings.h"
#include "mozilla/ModuleUtils.h"
#include "nsIServiceManager.h"
#include "nsIURI.h"
+#include "nsNetCID.h"
#include "nsString.h"
#include "nsCOMPtr.h"
#include "nspr.h"
extern "C" {
#include <proxy.h>
}

View File

@ -1,34 +0,0 @@
# HG changeset patch
# Parent 80b6464bd883864fce57e8748010869af1be69e9
# Parent 808d61f33afa6fb9921d3a7f994a71cf2dd9331a
diff --git a/toolkit/mozapps/installer/package-name.mk b/toolkit/mozapps/installer/package-name.mk
--- a/toolkit/mozapps/installer/package-name.mk
+++ b/toolkit/mozapps/installer/package-name.mk
@@ -147,24 +147,24 @@ else
BUILDID = $(shell $(PYTHON) $(MOZILLA_DIR)/config/printconfigsetting.py $(DIST)/bin/platform.ini Build BuildID)
endif
ifndef INCLUDED_RCS_MK
USE_RCS_MK := 1
include $(MOZILLA_DIR)/config/makefiles/makeutils.mk
endif
-MOZ_SOURCE_STAMP = $(firstword $(shell hg -R $(MOZILLA_DIR) parent --template="{node}\n" 2>/dev/null))
+#MOZ_SOURCE_STAMP = $(firstword $(shell hg -R $(MOZILLA_DIR) parent --template="{node}\n" 2>/dev/null))
###########################################################################
# bug: 746277 - preserve existing functionality.
# MOZILLA_DIR="": cd $(SPACE); hg # succeeds if ~/.hg exists
###########################################################################
ifdef MOZ_INCLUDE_SOURCE_INFO
-MOZ_SOURCE_REPO = $(call getSourceRepo,$(MOZILLA_DIR)$(NULL) $(NULL))
+#MOZ_SOURCE_REPO = $(call getSourceRepo,$(MOZILLA_DIR)$(NULL) $(NULL))
endif
MOZ_SOURCESTAMP_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME).txt
MOZ_BUILDINFO_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME).json
MOZ_BUILDID_INFO_TXT_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME)_info.txt
MOZ_MOZINFO_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME).mozinfo.json
MOZ_TEST_PACKAGES_FILE = $(DIST)/$(PKG_PATH)/test_packages.json
MOZ_TEST_PACKAGES_FILE_TC = $(DIST)/$(PKG_PATH)/test_packages_tc.json

View File

@ -4,10 +4,10 @@ Subject: use libnsssharedhelper if available at compile time
(can be disabled by exporting MOZ_XRE_NO_NSSHELPER=1)
References:
diff --git a/configure.in b/configure.in
--- a/configure.in
+++ b/configure.in
@@ -8310,16 +8310,31 @@ if test "$MOZ_ENABLE_SKIA"; then
diff --git a/old-configure.in b/old-configure.in
--- a/old-configure.in
+++ b/old-configure.in
@@ -8187,16 +8187,31 @@ if test "$MOZ_ENABLE_SKIA"; then
AC_DEFINE(USE_SKIA_GPU)
AC_SUBST(MOZ_ENABLE_SKIA_GPU)
fi
@ -87,7 +87,7 @@ diff --git a/security/manager/ssl/nsNSSComponent.cpp b/security/manager/ssl/nsNS
#include "mozilla/Preferences.h"
#include "mozilla/PublicSSL.h"
#include "mozilla/Services.h"
@@ -1007,17 +1014,31 @@ nsNSSComponent::InitializeNSS()
@@ -1017,17 +1024,31 @@ nsNSSComponent::InitializeNSS()
return rv;
}
}
@ -122,22 +122,22 @@ diff --git a/security/manager/ssl/nsNSSComponent.cpp b/security/manager/ssl/nsNS
diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build
--- a/toolkit/library/moz.build
+++ b/toolkit/library/moz.build
@@ -205,16 +205,18 @@ if CONFIG['MOZ_B2G_CAMERA'] and CONFIG['
'stagefright_omx',
]
if CONFIG['OS_ARCH'] == 'Linux' and CONFIG['OS_TARGET'] != 'Android':
@@ -209,16 +209,18 @@ if CONFIG['OS_ARCH'] == 'Linux' and CONF
OS_LIBS += [
'rt',
]
+OS_LIBS += sorted(CONFIG['NSSHELPER_LIBS'])
+
OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
OS_LIBS += CONFIG['MOZ_SERVO_LIBS']
+OS_LIBS += sorted(CONFIG['NSSHELPER_LIBS'])
+
if CONFIG['MOZ_NATIVE_JPEG']:
OS_LIBS += CONFIG['MOZ_JPEG_LIBS']
if CONFIG['MOZ_NATIVE_PNG']:
OS_LIBS += CONFIG['MOZ_PNG_LIBS']
if CONFIG['MOZ_NATIVE_HUNSPELL']:
OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']

View File

@ -1,2 +1,2 @@
REV=0b8492c110be
REV=b0310cb90fd0
REPO=http://hg.mozilla.org/releases/mozilla-release