OBS User unknown 2009-05-04 16:28:41 +00:00 committed by Git OBS Bridge
parent 5c79fd68b0
commit 6505a68eaa
12 changed files with 382 additions and 495 deletions

View File

@ -1,3 +1,17 @@
-------------------------------------------------------------------
Mon May 4 07:57:50 CEST 2009 - wr@rosenauer.org
- update to new major version 3.5b4
* based on Gecko 1.9.1 (mozilla-xulrunner191)
* Private Browsing Mode
* TraceMonkey JavaScript engine
* Geolocation support
* native JSON and web worker threads support
* speculative parsing for faster content rendering
* Some HTML5 support
- updated firefox.schemas
- improved firefox-no-update.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Apr 28 10:47:54 CEST 2009 - wr@rosenauer.org Tue Apr 28 10:47:54 CEST 2009 - wr@rosenauer.org

View File

@ -1,5 +1,5 @@
# #
# spec file for package MozillaFirefox (Version 3.0.10) # spec file for package MozillaFirefox (Version 3.5b4)
# #
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
# #
@ -19,14 +19,14 @@
Name: MozillaFirefox Name: MozillaFirefox
BuildRequires: gcc-c++ libgnomeui-devel libidl-devel mozilla-xulrunner190-devel orbit-devel python unzip update-desktop-files zip BuildRequires: autoconf213 gcc-c++ libgnomeui-devel libidl-devel mozilla-xulrunner191-devel orbit-devel python unzip update-desktop-files zip
%if %suse_version > 1020 %if %suse_version > 1020
BuildRequires: fdupes BuildRequires: fdupes
%endif %endif
License: GPL v2 or later; LGPL v2.1 or later; MOZILLA PUBLIC LICENSE (MPL/NPL) License: GPL v2 or later; LGPL v2.1 or later; MOZILLA PUBLIC LICENSE (MPL/NPL)
Provides: web_browser Provides: web_browser
Provides: firefox Provides: firefox
Version: 3.0.10 Version: 3.5b4
Release: 1 Release: 1
Summary: Mozilla Firefox Web Browser Summary: Mozilla Firefox Web Browser
Url: http://www.mozilla.org/ Url: http://www.mozilla.org/
@ -36,7 +36,6 @@ Source1: MozillaFirefox.desktop
Source2: %{name}-rpmlintrc Source2: %{name}-rpmlintrc
Source3: mozilla.sh.in Source3: mozilla.sh.in
Source4: find-external-requires.sh Source4: find-external-requires.sh
Source5: firefox-lockdown.js
Source7: l10n-%{version}.tar.bz2 Source7: l10n-%{version}.tar.bz2
Source8: firefox-mimeinfo.xml Source8: firefox-mimeinfo.xml
Source11: firefox48.png Source11: firefox48.png
@ -46,21 +45,19 @@ Patch1: firefox-libxul-sdk.patch
Patch2: firefox-no-update.patch Patch2: firefox-no-update.patch
Patch14: credits.patch Patch14: credits.patch
Patch17: firefox-appname.patch Patch17: firefox-appname.patch
# PATCH-FEATURE-SLED firefox-ui-lockdown.patch FATE#302023, FATE#302024 - hfiguiere@novell.com
Patch20: firefox-ui-lockdown.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: coreutils /bin/sh gconf2 shared-mime-info desktop-file-utils PreReq: coreutils /bin/sh gconf2 shared-mime-info desktop-file-utils
Requires: mozilla-xulrunner190 >= %(rpm -q --queryformat '%{VERSION}-%{RELEASE}' mozilla-xulrunner190) Requires: mozilla-xulrunner191 >= %(rpm -q --queryformat '%{VERSION}-%{RELEASE}' mozilla-xulrunner191)
%ifarch %ix86 %ifarch %ix86
Requires: mozilla-xulrunner190-32bit >= %(rpm -q --queryformat '%{VERSION}-%{RELEASE}' mozilla-xulrunner190) Requires: mozilla-xulrunner191-32bit >= %(rpm -q --queryformat '%{VERSION}-%{RELEASE}' mozilla-xulrunner191)
%endif %endif
Requires: %{name}-branding >= 3.0 Requires: %{name}-branding = 3.5
%define _unpackaged_files_terminate_build 0 %define _unpackaged_files_terminate_build 0
%define _use_internal_dependency_generator 0 %define _use_internal_dependency_generator 0
%define __find_requires sh %{SOURCE4} %define __find_requires sh %{SOURCE4}
%global provfind sh -c "grep -v '.so' | %__find_provides" %global provfind sh -c "grep -v '.so' | %__find_provides"
%global __find_provides %provfind %global __find_provides %provfind
%define releasedate 2009042700 %define releasedate 2009042600
%define progname firefox %define progname firefox
%define progdir %{_prefix}/%_lib/%{progname} %define progdir %{_prefix}/%_lib/%{progname}
%if %suse_version > 1020 %if %suse_version > 1020
@ -89,10 +86,10 @@ Authors:
%package translations %package translations
Summary: Translations for MozillaFirefox Summary: Translations for MozillaFirefox
License: GPL v2 or later; LGPL v2.1 or later; MOZILLA PUBLIC LICENSE (MPL/NPL) License: GPL v2 or later; LGPL v2.1 or later; MOZILLA PUBLIC LICENSE (MPL/NPL)
Provides: locale(%{name}:af;ar;be;bg;bn_IN;ca;cs;cy;da;de;el;en_GB;eo;es_AR;es_ES;et;eu;fi;fr;fy_NL;ga_IE;gl;gu_IN;he;hi_IN;hu;id;is;it;ja;ka;kn;ko;ku;lt;lv;mk;mn;mr;nb_NO;nl;nn_NO;oc;pa_IN;pl;pt_BR;pt_PT;ro;ru;si;sk;sl;sq;sr;sv_SE;te;th;tr;uk;zh_CN;zh_TW) Provides: locale(%{name}:af;ar;as;be;bg;bn_BD;bn_IN;ca;cs;cy;da;de;el;en_GB;es_AR;es_ES;ex_MX;et;eu;fa;fi;fr;fy_NL;ga_IE;gl;gu_IN;he;hi_IN;hr;hu;id;is;it;ja;ka;kk;kn;ko;ku;lt;lv;mk;mn;mr;nb_NO;nl;nn_NO;oc;pa_IN;pl;pt_BR;pt_PT;ro;ru;si;sk;sl;sq;sr;sv_SE;ta;te;th;tr;uk;vi;zh_CN;zh_TW)
Group: System/Localization Group: System/Localization
PreReq: %{name} = %{version} PreReq: %{name} = %{version}
Requires: mozilla-xulrunner190-translations Requires: mozilla-xulrunner191-translations
%description translations %description translations
This package contains several optional languages for the user interface This package contains several optional languages for the user interface
@ -110,8 +107,8 @@ Authors:
License: GPL v2 or later; LGPL v2.1 or later; MOZILLA PUBLIC LICENSE (MPL/NPL) License: GPL v2 or later; LGPL v2.1 or later; MOZILLA PUBLIC LICENSE (MPL/NPL)
Summary: Upstream branding for MozillaFirefox Summary: Upstream branding for MozillaFirefox
Group: Productivity/Networking/Web/Browsers Group: Productivity/Networking/Web/Browsers
Provides: %{name}-branding = %{version} Provides: %{name}-branding = 3.5
Conflicts: otherproviders(MozillaFirefox-branding) Conflicts: otherproviders(%{name}-branding)
Supplements: packageand(%{name}:branding-upstream) Supplements: packageand(%{name}:branding-upstream)
#BRAND: Provide three files - #BRAND: Provide three files -
#BRAND: /usr/lib/firefox/browserconfig.properties that contains the #BRAND: /usr/lib/firefox/browserconfig.properties that contains the
@ -137,11 +134,10 @@ Authors:
%prep %prep
%setup -q -n mozilla -b 7 %setup -q -n mozilla -b 7
cd $RPM_BUILD_DIR/mozilla cd $RPM_BUILD_DIR/mozilla
%patch1 %patch1 -p1
%patch2 %patch2 -p1
%patch14 %patch14
%patch17 %patch17
%patch20
%build %build
export MOZ_BUILD_DATE=%{releasedate} export MOZ_BUILD_DATE=%{releasedate}
@ -149,6 +145,12 @@ export MOZILLA_OFFICIAL=1
export BUILD_OFFICIAL=1 export BUILD_OFFICIAL=1
export CFLAGS="$RPM_OPT_FLAGS -Os -fno-strict-aliasing" export CFLAGS="$RPM_OPT_FLAGS -Os -fno-strict-aliasing"
export CXXFLAGS="$CFLAGS" export CXXFLAGS="$CFLAGS"
# 10.3-x86_64 build fails probably because gcc bug
%if %suse_version == 1030
%ifarch x86_64
export ac_cv_visibility_hidden="no"
%endif
%endif
export MOZCONFIG=$RPM_BUILD_DIR/mozconfig export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
SDKDIR=$(pkg-config --variable=sdkdir libxul) SDKDIR=$(pkg-config --variable=sdkdir libxul)
cat << EOF > $MOZCONFIG cat << EOF > $MOZCONFIG
@ -164,6 +166,7 @@ ac_add_options --includedir=%{_includedir}
ac_add_options --with-system-nspr ac_add_options --with-system-nspr
ac_add_options --with-system-nss ac_add_options --with-system-nss
ac_add_options --with-libxul-sdk=$SDKDIR ac_add_options --with-libxul-sdk=$SDKDIR
ac_add_options --with-l10n-base=../l10n
ac_add_options --with-system-jpeg ac_add_options --with-system-jpeg
#ac_add_options --with-system-png # doesn't work because of missing APNG support #ac_add_options --with-system-png # doesn't work because of missing APNG support
ac_add_options --with-system-zlib ac_add_options --with-system-zlib
@ -226,7 +229,6 @@ sed -e 's,RPM_VERSION,%{version}-%{release},g' \
%{SOURCE17} > suse-default-prefs %{SOURCE17} > suse-default-prefs
cp suse-default-prefs $RPM_BUILD_ROOT/%{progdir}/defaults/preferences/firefox-build.js cp suse-default-prefs $RPM_BUILD_ROOT/%{progdir}/defaults/preferences/firefox-build.js
rm suse-default-prefs rm suse-default-prefs
cp %{SOURCE5} $RPM_BUILD_ROOT/%{progdir}/defaults/preferences/
# use correct locale for useragent # use correct locale for useragent
cat > $RPM_BUILD_ROOT%{progdir}/defaults/preferences/firefox-l10n.js << EOF cat > $RPM_BUILD_ROOT%{progdir}/defaults/preferences/firefox-l10n.js << EOF
pref("general.useragent.locale", "chrome://global/locale/intl.properties"); pref("general.useragent.locale", "chrome://global/locale/intl.properties");
@ -310,8 +312,8 @@ fi
%{progdir}/searchplugins/ %{progdir}/searchplugins/
%{progdir}/modules/ %{progdir}/modules/
%attr(755,root,root) %{progdir}/%{progname}.sh %attr(755,root,root) %{progdir}/%{progname}.sh
%{progdir}/%{progname}
%{progdir}/application.ini %{progdir}/application.ini
%{progdir}/firefox
%{progdir}/blocklist.xml %{progdir}/blocklist.xml
%exclude %{progdir}/updater.ini %exclude %{progdir}/updater.ini
%exclude %{progdir}/removed-files %exclude %{progdir}/removed-files
@ -319,7 +321,6 @@ fi
%exclude %{progdir}/old-homepage-default.properties %exclude %{progdir}/old-homepage-default.properties
%exclude %{progdir}/components/libnkgnomevfs.so %exclude %{progdir}/components/libnkgnomevfs.so
%exclude %{progdir}/run-mozilla.sh %exclude %{progdir}/run-mozilla.sh
%exclude %{progdir}/libjemalloc.so
%{_datadir}/applications/%{name}.desktop %{_datadir}/applications/%{name}.desktop
%{_datadir}/mime/packages/%{progname}.xml %{_datadir}/mime/packages/%{progname}.xml
%{_datadir}/pixmaps/firefox* %{_datadir}/pixmaps/firefox*
@ -338,8 +339,18 @@ fi
%defattr(-,root,root) %defattr(-,root,root)
%{progdir}/browserconfig.properties %{progdir}/browserconfig.properties
%{progdir}/defaults/profile/bookmarks.html %{progdir}/defaults/profile/bookmarks.html
%changelog %changelog
* Mon May 04 2009 wr@rosenauer.org
- update to new major version 3.5b4
* based on Gecko 1.9.1 (mozilla-xulrunner191)
* Private Browsing Mode
* TraceMonkey JavaScript engine
* Geolocation support
* native JSON and web worker threads support
* speculative parsing for faster content rendering
* Some HTML5 support
- updated firefox.schemas
- improved firefox-no-update.patch
* Tue Apr 28 2009 wr@rosenauer.org * Tue Apr 28 2009 wr@rosenauer.org
- security update to 3.0.10 - security update to 3.0.10
* MFSA 2009-23/CVE-2009-1313 (bmo#489647) * MFSA 2009-23/CVE-2009-1313 (bmo#489647)

View File

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

View File

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

View File

@ -1,20 +1,22 @@
Index: browser/locales/Makefile.in diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
=================================================================== --- a/browser/locales/Makefile.in
RCS file: /cvsroot/mozilla/browser/locales/Makefile.in,v +++ b/browser/locales/Makefile.in
retrieving revision 1.59 @@ -188,15 +188,17 @@ endif
diff -u -r1.59 Makefile.in
--- browser/locales/Makefile.in 10 Feb 2008 06:09:54 -0000 1.59 clobber-%:
+++ browser/locales/Makefile.in 29 Feb 2008 08:48:09 -0000 $(RM) -rf $(DIST)/xpi-stage/locale-$*
@@ -172,9 +172,11 @@
endif
libs-%: libs-%:
$(NSINSTALL) -D $(DIST)/install
+ifndef LIBXUL_SDK +ifndef LIBXUL_SDK
@$(MAKE) -C ../../toolkit/locales libs-$* @$(MAKE) -C ../../toolkit/locales libs-$* BOTH_MANIFESTS=1
- @$(MAKE) -C ../../extensions/reporter/locales libs AB_CD=$* XPI_NAME=locale-$* + @$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
@$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$*
+endif +endif
+ @$(MAKE) -C ../../extensions/reporter/locales libs AB_CD=$* XPI_NAME=locale-$* @$(MAKE) -C ../../extensions/reporter/locales libs AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/pref - @$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/pref BOTH_MANIFESTS=1
ifdef MOZ_BRANDING_DIRECTORY ifdef MOZ_BRANDING_DIRECTORY
@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$* @$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
endif
@$(MAKE) tests AB_CD=$*

View File

@ -1,16 +0,0 @@
// UI lockdown settings
pref("config.lockdown.printing", false);
pref("config.lockdown.printsetup", false);
pref("config.lockdown.savepage", false);
pref("config.lockdown.history", false);
pref("config.lockdown.toolbarediting", false);
pref("config.lockdown.urlbar", false);
pref("config.lockdown.bookmark", false);
pref("config.lockdown.searchbar", false);
pref("config.lockdown.hidebookmark", false);
pref("config.lockdown.setwallpaper", false);
pref("config.lockdown.showsavedpasswords", false);
pref("config.lockdown.disable_themes", false);
pref("config.lockdown.disable_extensions", false);

View File

@ -1,149 +1,26 @@
Index: browser/app/profile/firefox.js diff --git a/browser/base/content/utilityOverlay.js b/browser/base/content/utilityOverlay.js
=================================================================== --- a/browser/base/content/utilityOverlay.js
RCS file: /cvsroot/mozilla/browser/app/profile/firefox.js,v +++ b/browser/base/content/utilityOverlay.js
retrieving revision 1.338 @@ -487,7 +487,11 @@ function buildHelpMenu()
diff -u -p -6 -r1.338 firefox.js // administrator or if we cannot update for some other reason
--- browser/app/profile/firefox.js 21 Jul 2008 18:47:20 -0000 1.338 var checkForUpdates = document.getElementById("checkForUpdates");
+++ browser/app/profile/firefox.js 15 Sep 2008 13:50:07 -0000 var canUpdate = updates.canUpdate;
@@ -83,72 +83,12 @@ pref("extensions.blocklist.interval", 86 + var updateEnabled = getBoolPref("app.update.enabled", true);
pref("extensions.blocklist.url", "https://addons.mozilla.org/blocklist/2/%APP_ID%/%APP_VERSION%/%PRODUCT%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/"); checkForUpdates.setAttribute("disabled", !canUpdate);
pref("extensions.blocklist.detailsURL", "http://%LOCALE%.www.mozilla.com/%LOCALE%/blocklist/"); + checkForUpdates.setAttribute("hidden", !canUpdate || !updateEnabled);
+ var updateSeparator = document.getElementById("updateSeparator");
+ updateSeparator.setAttribute("hidden", !canUpdate || !updateEnabled);
if (!canUpdate)
return;
// Dictionary download preference diff --git a/browser/components/preferences/advanced.js b/browser/components/preferences/advanced.js
pref("browser.dictionaries.download.url", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/firefox/%VERSION%/dictionaries/"); --- a/browser/components/preferences/advanced.js
+++ b/browser/components/preferences/advanced.js
-// App-specific update preferences @@ -410,6 +410,7 @@ var gAdvancedPane = {
-
-// Whether or not app updates are enabled
-pref("app.update.enabled", true);
-
-// This preference turns on app.update.mode and allows automatic download and
-// install to take place. We use a separate boolean toggle for this to make
-// the UI easier to construct.
-pref("app.update.auto", true);
-
-// Defines how the Application Update Service notifies the user about updates:
-//
-// AUM Set to: Minor Releases: Major Releases:
-// 0 download no prompt download no prompt
-// 1 download no prompt download no prompt if no incompatibilities
-// 2 download no prompt prompt
-//
-// See chart in nsUpdateService.js.in for more details
-//
-pref("app.update.mode", 1);
-
-// If set to true, the Update Service will present no UI for any event.
-pref("app.update.silent", false);
-
-// Update service URL:
-pref("app.update.url", "https://aus2.mozilla.org/update/3/%PRODUCT%/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml");
-// app.update.url.manual is in branding section
-// app.update.url.details is in branding section
-
-// User-settable override to app.update.url for testing purposes.
-//pref("app.update.url.override", "");
-
-// Interval: Time between checks for a new version (in seconds)
-// default=1 day
-pref("app.update.interval", 86400);
-// Interval: Time before prompting the user again to restart to install the
-// latest download (in seconds) default=1 day
-pref("app.update.nagTimer.restart", 86400);
-// Interval: When all registered timers should be checked (in milliseconds)
-// default=10 minutes
-pref("app.update.timer", 600000);
-// Give the user x seconds to react before showing the big UI. default=12 hrs
-pref("app.update.promptWaitTime", 43200);
-// Show the Update Checking/Ready UI when the user was idle for x seconds
-pref("app.update.idletime", 60);
-
-// Whether or not we show a dialog box informing the user that the update was
-// successfully applied. This is off in Firefox by default since we show a
-// upgrade start page instead! Other apps may wish to show this UI, and supply
-// a whatsNewURL field in their brand.properties that contains a link to a page
-// which tells users what's new in this new update.
-pref("app.update.showInstalledUI", false);
-
-// 0 = suppress prompting for incompatibilities if there are updates available
-// to newer versions of installed addons that resolve them.
-// 1 = suppress prompting for incompatibilities only if there are VersionInfo
-// updates available to installed addons that resolve them, not newer
-// versions.
-pref("app.update.incompatible.mode", 0);
-
// Symmetric (can be overridden by individual extensions) update preferences.
// e.g.
// extensions.{GUID}.update.enabled
// extensions.{GUID}.update.url
// extensions.{GUID}.update.interval
// .. etc ..
Index: browser/base/content/baseMenuOverlay.xul
===================================================================
RCS file: /cvsroot/mozilla/browser/base/content/baseMenuOverlay.xul,v
retrieving revision 1.21
diff -u -p -6 -r1.21 baseMenuOverlay.xul
--- browser/base/content/baseMenuOverlay.xul 6 May 2008 04:07:24 -0000 1.21
+++ browser/base/content/baseMenuOverlay.xul 15 Sep 2008 13:50:07 -0000
@@ -94,17 +94,17 @@
#endif
<menuitem id="releaseNotes"
accesskey="&helpReleaseNotes.accesskey;"
label="&helpReleaseNotes.label;"
oncommand="openReleaseNotes(event)"
onclick="checkForMiddleClick(this, event);"/>
- <menuseparator id="updateSeparator"/>
<menuitem id="checkForUpdates"
accesskey="&updateCmd.accesskey;"
label="&updateCmd.label;"
class="menuitem-iconic"
+ hidden="true"
oncommand="checkForUpdates();"/>
<menuseparator id="aboutSeparator"/>
<menuitem id="aboutName"
accesskey="&aboutCmd.accesskey;"
label="&aboutCmd.label;"
oncommand="openAboutDialog();"/>
Index: browser/components/preferences/advanced.js
===================================================================
RCS file: /cvsroot/mozilla/browser/components/preferences/advanced.js,v
retrieving revision 1.36
diff -u -p -6 -r1.36 advanced.js
--- browser/components/preferences/advanced.js 5 Apr 2008 00:18:08 -0000 1.36
+++ browser/components/preferences/advanced.js 15 Sep 2008 13:50:07 -0000
@@ -387,12 +387,14 @@ var gAdvancedPane = {
getService(Components.interfaces.nsIApplicationUpdateService);
var enabledPref = document.getElementById("app.update.enabled");
var enableAppUpdate = document.getElementById("enableAppUpdate"); var enableAppUpdate = document.getElementById("enableAppUpdate");
enableAppUpdate.disabled = !aus.canUpdate || enabledPref.locked; enableAppUpdate.disabled = !aus.canUpdate || enabledPref.locked;
+ enableAppUpdate.disabled = true; + enableAppUpdate.hidden = !aus.canUpdate || !enabledPref.value;
+ enableAppUpdate.hidden = true;
}, },
/** /**
* Enables/disables UI for "when updates are found" based on the values,
* and "locked" states of associated preferences.
*/
Index: browser/components/safebrowsing/content/report-phishing-overlay.xul
===================================================================
RCS file: /cvsroot/mozilla/browser/components/safebrowsing/content/report-phishing-overlay.xul,v
retrieving revision 1.13
diff -u -p -6 -r1.13 report-phishing-overlay.xul
--- browser/components/safebrowsing/content/report-phishing-overlay.xul 15 Aug 2008 19:36:20 -0000 1.13
+++ browser/components/safebrowsing/content/report-phishing-overlay.xul 15 Sep 2008 13:50:07 -0000
@@ -56,12 +56,12 @@
observes="reportPhishingBroadcaster"
oncommand="openUILink(safebrowsing.getReportURL('Phish'), event);"
onclick="checkForMiddleClick(this, event);"/>
<menuitem id="menu_HelpPopup_reportPhishingErrortoolmenu"
label="&safeb.palm.notforgery.label2;"
accesskey="&reportPhishSiteMenu.accesskey;"
- insertbefore="updateSeparator"
+ insertbefore="aboutSeparator"
observes="reportPhishingErrorBroadcaster"
oncommand="openUILinkIn(safebrowsing.getReportURL('Error'), 'tab');"
onclick="checkForMiddleClick(this, event);"/>
</menupopup>
</overlay>

View File

@ -1,2 +1,3 @@
pref("general.useragent.vendor", "SUSE"); pref("general.useragent.vendor", "SUSE");
pref("general.useragent.vendorSub", "RPM_VERSION"); pref("general.useragent.vendorSub", "RPM_VERSION");
pref("app.update.enabled", false);

View File

@ -1,291 +0,0 @@
Index: browser/base/content/browser-menubar.inc
===================================================================
--- browser/base/content/browser-menubar.inc.orig
+++ browser/base/content/browser-menubar.inc
@@ -68,9 +68,9 @@
<menuitem id="menu_saveFrame" label="&saveFrameCmd.label;" accesskey="&saveFrameCmd.accesskey;" command="Browser:SaveFrame" hidden="true"/>
<menuitem id="menu_sendLink" label="&sendPageCmd.label;" accesskey="&sendPageCmd.accesskey;" command="Browser:SendLink"/>
<menuseparator/>
- <menuitem label="&printSetupCmd.label;" accesskey="&printSetupCmd.accesskey;" command="cmd_pageSetup"/>
+ <menuitem id="menu_printSetup" label="&printSetupCmd.label;" accesskey="&printSetupCmd.accesskey;" command="cmd_pageSetup"/>
#ifndef XP_MACOSX
- <menuitem label="&printPreviewCmd.label;" accesskey="&printPreviewCmd.accesskey;" command="cmd_printPreview"/>
+ <menuitem id="menu_printPreview" label="&printPreviewCmd.label;" accesskey="&printPreviewCmd.accesskey;" oncommand="PrintUtils.printPreview(onEnterPrintPreview, onExitPrintPreview);"/>
#endif
<menuitem label="&printCmd.label;" accesskey="&printCmd.accesskey;" key="printKb" command="cmd_print"/>
<menuseparator/>
Index: browser/base/content/browser.js
===================================================================
--- browser/base/content/browser.js.orig
+++ browser/base/content/browser.js
@@ -920,6 +920,152 @@ function prepareForStartup()
gBrowser.addEventListener("DOMLinkAdded", DOMLinkHandler, false);
}
+function lockdownElement(ident, disable, hideCompletely)
+{
+ var e = document.getElementById(ident);
+ if (!e) return;
+ if (hideCompletely) {
+ e.setAttribute("style", (disable) ? "display: none;" : "");
+ } else if (disable) {
+ e.setAttribute("disabled", "true");
+ } else {
+ e.removeAttribute("disabled");
+ }
+}
+
+function applyLockdown(isStartup)
+{
+ // It is important to check that Firefox code does not change the
+ // "disabled" state of these UI elements. Fortunately it mostly hides
+ // elements rather than disables them.
+ var disablePrinting = gPrefService.getBoolPref("config.lockdown.printing");
+ var disablePrintSetup = gPrefService.getBoolPref("config.lockdown.printsetup");
+ if (!isStartup || disablePrintSetup || disablePrintSetup) {
+ lockdownElement("cmd_pageSetup", disablePrinting || disablePrintSetup);
+ lockdownElement("menu_printPreview", disablePrinting || disablePrintSetup);
+ lockdownElement("cmd_print", disablePrinting);
+ }
+
+ var disableSave = gPrefService.getBoolPref("config.lockdown.savepage");
+ if (!isStartup || disableSave) {
+ lockdownElement("Browser:SavePage", disableSave);
+ lockdownElement("Browser:SaveFrame", disableSave);
+ lockdownElement("context-savepage", disableSave);
+ lockdownElement("context-saveframe", disableSave);
+ lockdownElement("context-savelink", disableSave);
+ lockdownElement("context-saveimage", disableSave);
+ lockdownElement("View:PageSource", disableSave);
+ lockdownElement("context-viewpartialsource-selection", disableSave);
+ lockdownElement("context-viewpartialsource-mathml", disableSave);
+ lockdownElement("context-viewsource", disableSave);
+ lockdownElement("context-viewframesource", disableSave);
+ lockdownElement("View:PageInfo", disableSave);
+ lockdownElement("context-viewinfo", disableSave);
+ lockdownElement("context-viewframeinfo", disableSave);
+ lockdownElement("Tasks:InspectPage", disableSave); // from DOMInspector extension
+ }
+
+ var disableBookmarks = gPrefService.getBoolPref("config.lockdown.hidebookmark");
+ var disableBookmarkEditing = gPrefService.getBoolPref("config.lockdown.bookmark");
+ if (!isStartup || disableBookmarks || disableBookmarkEditing) {
+ lockdownElement("bookmarksMenu", disableBookmarks, true);
+ lockdownElement("viewBookmarksSidebar", disableBookmarks);
+ lockdownElement("PersonalToolbar", disableBookmarks); // XXX check
+ lockdownElement("Browser:AddBookmarkAs", disableBookmarks || disableBookmarkEditing);
+ lockdownElement("Browser:ShowAllBookmarks", disableBookmarks || disableBookmarkEditing);
+ lockdownElement("manBookmark", disableBookmarks || disableBookmarkEditing);
+ lockdownElement("context-bookmarkpage", disableBookmarks || disableBookmarkEditing);
+ lockdownElement("context-bookmarklink", disableBookmarks || disableBookmarkEditing);
+
+ // hide the personal bookmarks toolbar if necessary
+ if (disableBookmarks) {
+ document.getElementById("PersonalToolbar").setAttribute("collapsed", "true");
+ }
+ }
+
+ var disableHistory = gPrefService.getBoolPref("config.lockdown.history");
+ if (!isStartup || disableHistory) {
+ lockdownElement("history-menu", disableHistory, true);
+ lockdownElement("viewHistorySidebar", disableHistory);
+ lockdownElement("Browser:ShowAllHistory", disableHistory);
+ gURLBar.setAttribute("enablehistory", disableHistory ? "false" : "true");
+ gURLBar.disableAutoComplete = disableHistory;
+ }
+
+ var defaultPrefs = Cc["@mozilla.org/preferences-service;1"]
+ .getService(Ci.nsIPrefService).getDefaultBranch(null);
+ if (isStartup && disableHistory) {
+ if (!defaultPrefs.prefIsLocked("browser.history_expire_days")) {
+ defaultPrefs.setIntPref("browser.history_expire_days", 0);
+ defaultPrefs.lockPref("browser.history_expire_days");
+ }
+ if (!defaultPrefs.prefIsLocked("browser.formfill.enable")) {
+ defaultPrefs.setBoolPref("browser.formfill.enable", false);
+ defaultPrefs.lockPref("browser.formfill.enable");
+ }
+ if (!defaultPrefs.prefIsLocked("browser.download.manager.retention")) {
+ defaultPrefs.setIntPref("browser.download.manager.retention", 0);
+ defaultPrefs.lockPref("browser.download.manager.retention");
+ }
+ gPrefService.setBoolPref("config.lockdown.history.set", true);
+ } else if (isStartup && gPrefService.prefHasUserValue("config.lockdown.history.set")) {
+ if (!defaultPrefs.prefIsLocked("browser.history_expire_days")) {
+ defaultPrefs.clearUserPref("browser.history_expire_days");
+ }
+ if (!defaultPrefs.prefIsLocked("browser.formfill.enable")) {
+ defaultPrefs.clearUserPref("browser.formfill.enable");
+ }
+ if (!defaultPrefs.prefIsLocked("browser.download.manager.retention")) {
+ defaultPrefs.clearUserPref("browser.download.manager.retention");
+ }
+ gPrefService.clearUserPref("config.lockdown.history.set");
+ }
+
+ var disableURLBar = gPrefService.getBoolPref("config.lockdown.urlbar");
+ if (!isStartup || disableURLBar) {
+ lockdownElement("urlbar", disableURLBar);
+ lockdownElement("Browser:OpenLocation", disableURLBar);
+ lockdownElement("Browser:OpenFile", disableURLBar);
+ }
+
+ var disableSearchBar = gPrefService.getBoolPref("config.lockdown.searchbar");
+ if (!isStartup || disableSearchBar) {
+ document.getElementById("search-container")
+ .setAttribute("style", (disableSearchBar) ? "display: none;" : "");
+ }
+
+ var disableToolbarEditing = gPrefService.getBoolPref("config.lockdown.toolbarediting");
+ if (!isStartup || disableToolbarEditing) {
+ var e = document.getElementById("cmd_CustomizeToolbars");
+ if (!e.getAttribute("inCustomization")) {
+ lockdownElement("cmd_CustomizeToolbars", disableToolbarEditing);
+ }
+ }
+
+ // Close sidebar if we disabled the command that's currently in use
+ var sidebarBox = document.getElementById("sidebar-box");
+ var cmd = sidebarBox.getAttribute("sidebarcommand");
+ if (cmd) {
+ var elt = document.getElementById(cmd);
+ if (elt && elt.getAttribute("disabled") == "true") {
+ toggleSidebar(cmd, false);
+ gMustLoadSidebar = false;
+ }
+ }
+}
+
+var lockdownObserver = {
+ observe: function(aSubject, aTopic, aPrefName)
+ {
+ try {
+ applyLockdown(false);
+ } catch (ex) {
+ dump("Failed lockdown: " + ex + "\n");
+ }
+ }
+};
+
+
function delayedStartup()
{
var os = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
@@ -928,7 +1074,16 @@ function delayedStartup()
if (!gPrefService)
gPrefService = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefBranch2);
+ .getService(Components.interfaces.nsIPrefBranchInternal);
+ try {
+ // do lockdown stuff in an exception handler so that if it fails
+ // catastrophically, the browser should still come up and function
+ applyLockdown(true);
+ gPrefService.addObserver("config.lockdown.", lockdownObserver, false);
+ } catch (ex) {
+ dump("Failed lockdown: " + ex + "\n");
+ }
+
BrowserOffline.init();
OfflineApps.init();
@@ -940,8 +1095,8 @@ function delayedStartup()
Cc["@mozilla.org/login-manager;1"].getService(Ci.nsILoginManager);
if (gMustLoadSidebar) {
- var sidebar = document.getElementById("sidebar");
var sidebarBox = document.getElementById("sidebar-box");
+ var sidebar = document.getElementById("sidebar");
sidebar.setAttribute("src", sidebarBox.getAttribute("src"));
}
@@ -1132,6 +1287,8 @@ function BrowserShutdown()
os.removeObserver(gSessionHistoryObserver, "browser:purge-session-history");
os.removeObserver(gXPInstallObserver, "xpinstall-install-blocked");
+ gPrefService.removeObserver("config.lockdown.", lockdownObserver);
+
try {
gBrowser.removeProgressListener(window.XULBrowserWindow);
} catch (ex) {
@@ -3065,6 +3222,12 @@ function FillHistoryMenu(aParent) {
aParent.removeChild(children[i]);
}
+ // lockdown. Don't display anything if locked down.
+ var disableHistory = gPrefService.getBoolPref("config.lockdown.history");
+ if (disableHistory) {
+ return false;
+ }
+
var webNav = getWebNavigation();
var sessionHistory = webNav.sessionHistory;
var bundle_browser = document.getElementById("bundle_browser");
@@ -3220,6 +3383,7 @@ function BrowserCustomizeToolbar()
var cmd = document.getElementById("cmd_CustomizeToolbars");
cmd.setAttribute("disabled", "true");
+ cmd.setAttribute("inCustomization", "true");
var splitter = document.getElementById("urlbar-search-splitter");
if (splitter)
@@ -3251,6 +3415,15 @@ function BrowserCustomizeToolbar()
#endif
}
+function BrowserRestoreCustomizationDisabledState()
+{
+ var cmd = document.getElementById("cmd_CustomizeToolbars");
+ if (!gPrefService.getBoolPref("config.lockdown.toolbarediting")) {
+ cmd.removeAttribute("disabled", "true");
+ }
+ cmd.removeAttribute("inCustomization");
+}
+
function BrowserToolboxCustomizeDone(aToolboxChanged)
{
#ifdef TOOLBAR_CUSTOMIZATION_SHEET
@@ -3266,6 +3439,14 @@ function BrowserToolboxCustomizeDone(aTo
gIdentityHandler._cacheElements();
window.XULBrowserWindow.init();
+ // make sure the search bar is not put back if locked down
+ var disableSearchBar = gPrefService.getBoolPref("config.lockdown.searchbar");
+ if (disableSearchBar) {
+ document.getElementById("search-container")
+ .setAttribute("style", (disableSearchBar) ? "display: none;" : "");
+ }
+
+
var backForwardDropmarker = document.getElementById("back-forward-dropmarker");
if (backForwardDropmarker)
backForwardDropmarker.disabled =
@@ -3300,8 +3481,7 @@ function BrowserToolboxCustomizeDone(aTo
var menubar = document.getElementById("main-menubar");
for (var i = 0; i < menubar.childNodes.length; ++i)
menubar.childNodes[i].setAttribute("disabled", false);
- var cmd = document.getElementById("cmd_CustomizeToolbars");
- cmd.removeAttribute("disabled");
+ BrowserRestoreCustomizationDisabledState();
// XXXmano bug 287105: wallpaper to bug 309953,
// the reload button isn't in sync with the reload command.
@@ -4479,6 +4659,9 @@ function onViewToolbarsPopupShowing(aEve
menuItem.setAttribute("toolbarindex", i);
menuItem.setAttribute("type", "checkbox");
menuItem.setAttribute("label", toolbarName);
+ if (toolbar.getAttribute("disabled") == "true") {
+ menuItem.setAttribute("disabled", "true");
+ }
menuItem.setAttribute("accesskey", toolbar.getAttribute("accesskey"));
menuItem.setAttribute("checked", toolbar.getAttribute("collapsed") != "true");
popup.insertBefore(menuItem, firstMenuItem);
@@ -6329,7 +6512,7 @@ BookmarkAllTabsHandler.prototype = {
if (aTabClose)
numTabs--;
- if (numTabs > 1)
+ if (numTabs > 1 && !gPrefService.getBoolPref("config.lockdown.bookmark"))
this._command.removeAttribute("disabled");
else
this._command.setAttribute("disabled", "true");

289
firefox.schemas Normal file
View File

@ -0,0 +1,289 @@
<gconfschemafile>
<schemalist>
<schema>
<key>/schemas/apps/firefox/lockdown/disable_history</key>
<applyto>/apps/firefox/lockdown/disable_history</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Disable the browser history</short>
<long>Prevent the browser from keeping a history of visited sites</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/lockdown/disable_toolbar_editing</key>
<applyto>/apps/firefox/lockdown/disable_toolbar_editing</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Disable toolbar editing</short>
<long>Prevent the user from editing the toolbar</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/lockdown/disable_themes</key>
<applyto>/apps/firefox/lockdown/disable_themes</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Disable installing themes</short>
<long>To prevent the user from installing themes</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/lockdown/disable_extensions</key>
<applyto>/apps/firefox/lockdown/disable_extensions</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Disable installing extensions</short>
<long>Prevent the user from installing extensions</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/web/disable_popups</key>
<applyto>/apps/firefox/web/disable_popups</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Enable popup blocker</short>
<long>Enable popup blocker without warning about blocked popups</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/web/java_enabled</key>
<applyto>/apps/firefox/web/java_enabled</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>true</default>
<locale name="C">
<short>Enable java</short>
<long>Enable java</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/web/javascript_enabled</key>
<applyto>/apps/firefox/web/javascript_enabled</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>true</default>
<locale name="C">
<short>Enable javascript</short>
<long>Enable javascript</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/lockdown/disable_url_bar</key>
<applyto>/apps/firefox/lockdown/disable_url_bar</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Disable location bar</short>
<long>Prevent the user from entering URLs in the location bar</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/lockdown/disable_searchbar</key>
<applyto>/apps/firefox/lockdown/disable_searchbar</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Disable search bar</short>
<long>Prevent the user from using the search bar</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/web/disable_cookies</key>
<applyto>/apps/firefox/web/disable_cookies</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Disable cookies</short>
<long>Prevent the browser from storing cookies</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/web/disable_save_password</key>
<applyto>/apps/firefox/web/disable_save_password</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Disable saved passwords</short>
<long>Prevent the browser from storing saved passwords</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/web/cache_size</key>
<applyto>/apps/firefox/web/cache_size</applyto>
<owner>firefox</owner>
<type>int</type>
<default>50000</default>
<locale name="C">
<short>Disk cache size in KB</short>
<long>Disk cache size in KB</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/general/homepage_url</key>
<applyto>/apps/firefox/general/homepage_url</applyto>
<owner>firefox</owner>
<type>string</type>
<default>www.novell.com/linux</default>
<locale name="C">
<short>Home Page URL</short>
<long>Home Page URL</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/web/download_defaultfolder</key>
<applyto>/apps/firefox/web/download_defaultfolder</applyto>
<owner>firefox</owner>
<type>string</type>
<default>Desktop</default>
<locale name="C">
<short>Default download location</short>
<long>Default download location. Possible values include: "Desktop", "My Downloads", and "Home"</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/lockdown/disable_unsafe_protocol</key>
<applyto>/apps/firefox/lockdown/disable_unsafe_protocol</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Disable unsafe protocols</short>
<long>Disable non-builtin protocols not explicitly enabled</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/lockdown/disable_bookmark_editing</key>
<applyto>/apps/firefox/lockdown/disable_bookmark_editing</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Disable editing bookmarks</short>
<long>Prevent the user from editing browser bookmarks</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/lockdown/hide_bookmark</key>
<applyto>/apps/firefox/lockdown/hide_bookmark</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Disable bookmarks feature</short>
<long>Prevent the user from editing or viewing bookmarks</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/lockdown/disable_show_passwords</key>
<applyto>/apps/firefox/lockdown/disable_show_passwords</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Disable display of stored web passwords</short>
<long>Disable plain text display of stored web passwords in Preferences dialog</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/lockdown/disable_javascript_chrome</key>
<applyto>/apps/firefox/lockdown/disable_javascript_chrome</applyto>
<owner>firefox</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Prevent javascript windows from hiding chrome</short>
<long>Prevent windows opened by javascript from hiding window chrome (location bar, status bar, etc.)</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/web/cookie_accept</key>
<applyto>/apps/firefox/web/cookie_accept</applyto>
<owner>firefox</owner>
<type>int</type>
<default>0</default>
<locale name="C">
<short>Cookie Lifetime Policy</short>
<long>Cookie Lifetime Policy: 0 = Accept cookies normally; 1 = Prompt for each cookie; 2 = Accept for current session only; 3 = Accept for N days</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/web/images_load</key>
<applyto>/apps/firefox/web/images_load</applyto>
<owner>firefox</owner>
<type>int</type>
<default>0</default>
<locale name="C">
<short>Image loading policy</short>
<long>Image loading policy: 0 = load all images; 1 = exclude third-party image loading; 2 = exclude all image loading</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/lockdown/additional_safe_protocols</key>
<applyto>/apps/firefox/lockdown/additional_safe_protocols</applyto>
<owner>firefox</owner>
<type>string</type>
<default></default>
<locale name="C">
<short>Additional Safe Protocols</short>
<long>Additional Safe Protocols</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/general/trusted_URIs</key>
<applyto>/apps/firefox/general/trusted_URIs</applyto>
<owner>firefox</owner>
<type>list</type>
<list_type>string</list_type>
<default>[]</default>
<locale name="C">
<short>List of URIs for which Kerberos/NTLM is enabled</short>
<long>A comma-separated list of URI keys, of the form
[scheme "://"] [host [":" port]], for which login should be allowed
via SPNEGO Kerberos or NTLM authentication.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/general/delegated_URIs</key>
<applyto>/apps/firefox/general/delegated_URIs</applyto>
<owner>firefox</owner>
<type>list</type>
<list_type>string</list_type>
<default>[]</default>
<locale name="C">
<short>List of URIs for which Kerberos/NTLM delegation is enabled</short>
<long>A comma-separated list of URI keys, of the form
[scheme "://"] [host [":" port]], for which delegation should be allowed
using SPNEGO Kerberos or NTLM authentication.
</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/firefox/general/allowed_indirect_gnomevfs_loads</key>
<applyto>/apps/firefox/general/allowed_indirect_gnomevfs_loads</applyto>
<owner>firefox</owner>
<type>string</type>
<default>""</default>
<locale name="C">
<short>A list of protocols, handled by gnome-vfs, that are permitted</short>
<long>A comma-separated list of protocols, handled by
gnome-vfs and of the form [scheme "://"], whose loads are
allowed.</long>
</locale>
</schema>
</schemalist>
</gconfschemafile>

View File

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

3
l10n-3.5b4.tar.bz2 Normal file
View File

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