[PATCH] www/firefox: main merge from debian
Jose M Rodriguez (freebsd)
josemi at freebsd.jazztel.es
Tue Dec 28 08:29:16 PST 2004
>Submitter-Id: current-users
>Originator: Jose M Rodriguez (freebsd)
>Organization: Redes JM
>Confidential: no
>Synopsis: [PATCH] www/firefox: main merge from debian
>Severity: non-critical
>Priority: low
>Category: ports
>Class: update
>Release: FreeBSD 5.3-STABLE i386
>Environment:
System: FreeBSD orion.redesjm.local 5.3-STABLE FreeBSD 5.3-STABLE #0: Mon Dec 27 17:00:42 CET 2004
>Description:
n this patchset:
files/patch-uriloader_exthandler_unix_nsGNOMERegistry.cpp
- reprocopy fixes from mozilla (same code and use).
files/patch-browser_app_mozilla.in
- fix for non posix expr (RELENG_4_9?)
- protect against missleave as test options
files/patch-browser_app_Makefile.in
- small fix from debian
files/patch-browser_app_profile_extensions_classic_install.rdf.in
- small fix from debian
files/patch-browser_app_profile_firefox.js
- disable default browser check
- disable app update, from debian
- disable autoUpdate, from debian
- Use LANG environment variable to choose locale, from debian
- enable negotiate extension
files/patch-browser_base_content_aboutDialog.css
- use MACOSX defaults, from debian
files/patch-browser_components_prefwindow_content_pref-advanced.xul
- disable app autoUpdate in XUL, from debian
files/patch-content_events_src_nsEventStateManager.cpp
- mouse extended events, from debian (please, review)
files/patch-gfx_src_gtk_fontEncoding.properties
- correct ttf symbol font encodings
files/patch-htmlparser_src_nsParser.cpp
- from debian (please, review)
files/patch-layout_html_document_src_html.css
- from debian (please, review)
files/patch-modules_libpref_src_init_all.js
- chrome://global, from debian
(better import using reimplace in the works)
- mouse extended events, from debian
files/patch-netwerk_protocol_ftp_src_nsFtpConnectionThread.cpp
- ftp conn fixes, from debian (please test)
files/patch-toolkit_mozapps_extensions_content_extensions.js
- new debian extension manager (please, test)
(initial import, before full support of extensions/themes from ports)
files/patch-toolkit_mozapps_extensions_src_nsExtensionManager.js.in
- new debian extension manager (please, test)
(initial import, before full support of extensions/themes from ports)
files/patch-toolkit_mozapps_update_src_nsUpdateService.js.in
- disable app updates, from debian
files/patch-widget_public_nsGUIEvent.h
- extended mouse events, from debian
files/patch-widget_src_gtk2_nsWindow.cpp
- extended mouse events, from debian
files/patch-xpcom_io_nsAppDirectoryServiceDefs.h
- support for user search dir, from debian
doubt if of interest, but seems don't hurt
files/patch-xpcom_io_nsAppFileLocationProvider.cpp
- support for user search dir, from debian
doubt if of interest, but seems don't hurt
files/patch-xpfe_components_search_src_nsInternetSearchService.cpp
- support for user search dir, from debian
doubt if of interest, but seems don't hurt
files/patch-xpinstall_packager_unix_browser.jst
- chrome://global, from debian
files/firefox.desktop.in
- i18n
Added file(s):
- files/patch-browser_app_Makefile.in
- files/patch-browser_app_profile_extensions_classic_install.rdf.in
- files/patch-browser_app_profile_firefox.js
- files/patch-browser_base_content_aboutDialog.css
- files/patch-browser_components_prefwindow_content_pref-advanced.xul
- files/patch-content_events_src_nsEventStateManager.cpp
- files/patch-gfx_src_gtk_fontEncoding.properties
- files/patch-htmlparser_src_nsParser.cpp
- files/patch-layout_html_document_src_html.css
- files/patch-modules_libpref_src_init_all.js
- files/patch-netwerk_protocol_ftp_src_nsFtpConnectionThread.cpp
- files/patch-toolkit_mozapps_extensions_content_extensions.js
- files/patch-toolkit_mozapps_extensions_src_nsExtensionManager.js.in
- files/patch-toolkit_mozapps_update_src_nsUpdateService.js.in
- files/patch-uriloader_exthandler_unix_nsGNOMERegistry.cpp
- files/patch-widget_public_nsGUIEvent.h
- files/patch-widget_src_gtk2_nsWindow.cpp
- files/patch-xpcom_io_nsAppDirectoryServiceDefs.h
- files/patch-xpcom_io_nsAppFileLocationProvider.cpp
- files/patch-xpfe_components_search_src_nsInternetSearchService.cpp
- files/patch-xpinstall_packager_unix_browser.jst
Port maintainer (gnome at FreeBSD.org) is cc'd.
Generated with FreeBSD Port Tools 0.63
>How-To-Repeat:
>Fix:
--- firefox-1.0_6,1.patch begins here ---
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/firefox.desktop.in /junk/wk/www/firefox/files/firefox.desktop.in
--- /usr/HEAD/ports/www/firefox/files/firefox.desktop.in Mon Dec 13 01:04:25 2004
+++ /junk/wk/www/firefox/files/firefox.desktop.in Tue Dec 28 11:48:47 2004
@@ -1,9 +1,191 @@
[Desktop Entry]
-Name=Firefox
-Comment=Firefox Web Browser
+Encoding=UTF-8
+Name=Firefox Web Browser
+Name[am]=
+Name[ar]=
+Name[az]=Firefox Veb SÉyyahı
+Name[be]=
+Name[bg]=ÐнÑеÑÐ½ÐµÑ Ð±ÑаÑзÑÑ Firefox
+Name[bn]=à¦à¦ªà¦¿à¦«à¦¾à¦¨à¦¿ à¦à§à§à¦¬ বà§à¦°à¦¾à¦à¦à¦¾à¦°
+Name[bs]=Firefox web preglednik
+Name[ca]=Navegador web Firefox
+Name[cs]=ProhlÞeÄ WWW Firefox
+Name[cy]=Y Porwr Gwe Firefox
+Name[da]=Firefox - internetsurfning
+Name[de]=Firefox Webbrowser
+Name[el]=ΠεÏιηγηÏÎ®Ï ÎιαδικÏÏοÏ
Firefox
+Name[en_CA]=Firefox Web Browser
+Name[en_GB]=Firefox Web Browser
+Name[es]=Navegador Web Firefox
+Name[et]=Firefox veebibrauser
+Name[eu]=Firefox web arakatzailea
+Name[fi]=Firefox, WWW-selain
+Name[fr]=Navigateur Web Firefox
+Name[ga]=Brabhsálaà LÃn Firefox
+Name[gu]=àªàªªà«àª«àª¨à« વà«
બ બà«àª°àª¾àªàªàª°
+Name[he]=×פ××¤× Firefox
+Name[hi]=
+Name[hr]=Firefox Web preglednik
+Name[hu]=Firefox webböngészÅ
+Name[id]=Web Browser Firefox
+Name[it]=Browser web Firefox
+Name[ja]=Firefox ã¦ã§ãã»ãã©ã¦ã¶
+Name[ko]=Firefox ì¹ ë¸ë¼ì°ì
+Name[li]=Firefox Web Browser
+Name[lt]=Firefox web narÅ¡yklÄ
+Name[mk]=Firefox веб пÑелиÑÑÑваÑ
+Name[ml]=à´à´ªàµà´ªà´¿à´«à´¾à´¨à´¿ à´µàµà´¬àµà´¬àµ à´¬àµà´°àµà´¸âà´°àµ
+Name[mn]=Firefox веб Ñ
Ó©ÑÓ©Ñ
+Name[ms]=Pelungsur Web Firefox
+Name[nb]=Firefox nettleser
+Name[nl]=Firefox Webbrowser
+Name[nn]=Firefox nettlesar
+Name[no]=Firefox nettleser
+Name[pa]=à¨à¨ªà©à¨«à¨¾à¨¨à© ਵà©à©±à¨¬ ਬਰਾà¨à¨à¨¼à¨°
+Name[pl]=PrzeglÄ
darka WWW Firefox
+Name[pt]=Navegador Web Firefox
+Name[pt_BR]=Navegador Web Firefox
+Name[ro]=Navigatorul Firefox
+Name[ru]=Ðеб-бÑаÑÐ·ÐµÑ Firefox
+Name[sk]=WWW prehliadaÄ Zjavenie
+Name[sl]=Spletni brskalnik Firefox
+Name[sq]=Firefox - Shfletuesi Web
+Name[sr]=Ðеб ÑиÑÐ°Ñ Ð¡Ð¿Ð¾Ð·Ð½Ð°Ñа
+Name[sr at Latn]=Veb ÄitaÄ Spoznaja
+Name[sv]=Webbläsaren Firefox
+Name[ta]=à®à®ªà®¿à®ªà®©à®¿ வல௠à®à®²à®¾à®µà®¿
+Name[tk]=Firefox Web Ahtarçisi
+Name[tr]=Firefox Web Tarayıcı
+Name[uk]=ÐеÑеглÑÐ´Ð°Ñ web Firefox
+Name[vi]=Trình Duyá»t Web Firefox
+Name[wa]=Betchteu waibe epiphany
+Name[zh_CN]=Firefox Web æµè§å¨
+Name[zh_TW]=Firefox 網é ç覽å¨
+GenericName=Web Browser
+GenericName[ar]=Ù
تصÙÙØ Ø§ÙاÙترÙت
+GenericName[az]=Veb SÉyyahı
+GenericName[be]=ÐандÑоÑнÑк па павÑÑÑнÑнÑ
+GenericName[bg]=ÐÑаÑзÑÑ
+GenericName[bn]=à¦à§à§à¦¬ বà§à¦°à¦¾à¦à¦à¦¾à¦°
+GenericName[bs]=Web preglednik
+GenericName[ca]=Navegador web
+GenericName[cs]=ProhlÞeÄ WWW
+GenericName[cy]=Porwr Gwe
+GenericName[da]=Internetsurfning
+GenericName[de]=Webbrowser
+GenericName[el]=ΠεÏιηγηÏÎ®Ï ÎÏÏοÏελίδÏν
+GenericName[en_CA]=Web Browser
+GenericName[en_GB]=Web Browser
+GenericName[es]=Navegador web
+GenericName[et]=Veebilehitseja
+GenericName[eu]=Web arakatzailea
+GenericName[fi]=WWW-selain
+GenericName[fr]=Navigateur Web Firefox
+GenericName[ga]=Brabhsálaà LÃn
+GenericName[gu]=વà«àª¬ બà«àª°àª¾àªàªàª°
+GenericName[he]=×פ××¤× ××× ××¨× ×
+GenericName[hi]=वà¥à¤¬ बà¥à¤°à¤¾à¤à¤à¤¼à¤°
+GenericName[hr]=Web preglednik
+GenericName[hu]=WebböngészÅ
+GenericName[id]=Browser Web
+GenericName[it]=Browser web
+GenericName[ja]=GNOME ã¦ã§ãã»ãã©ã¦ã¶
+GenericName[ko]=ì¹ ë¸ë¼ì°ì
+GenericName[li]=Wèb Browser
+GenericName[lt]=Web narÅ¡yklÄ
+GenericName[mk]=Ðеб пÑелиÑÑÑваÑ
+GenericName[mn]=Ðеб Ñ
Ó©ÑÓ©Ñ
+GenericName[ms]=Pelungsur Web
+GenericName[nb]=Nettleser
+GenericName[nl]=Web-browser
+GenericName[nn]=Nettlesar
+GenericName[no]=Nettleser
+GenericName[pa]=ਵà©à¨¬ ਬਰਾà¨à¨à¨¼
+GenericName[pl]=PrzeglÄ
darka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador Web
+GenericName[ro]=Navigator Internet
+GenericName[ru]=Ðеб-бÑаÑзеÑ
+GenericName[sk]=WWW prehliadaÄ
+GenericName[sl]=Spletni brskalnik
+GenericName[sq]=Shfletuesi Web
+GenericName[sr]=Ðеб ÑиÑаÑ
+GenericName[sr at Latn]=Veb ÄitaÄ
+GenericName[sv]=Webbläsare
+GenericName[ta]=வல௠à®à®²à®¾à®µà®¿
+GenericName[th]=à¹à¸§à¹à¸à¸à¸£à¸²à¸§à¹à¸à¸à¸£à¹
+GenericName[tk]=Web Ahtarçysy
+GenericName[tr]=Web Tarayıcı
+GenericName[uk]=ÐеÑеглÑÐ´Ð°Ñ web-ÑÑоÑÑнок
+GenericName[vi]=Trình duyá»t Web
+GenericName[wa]=Betchteu waibe
+GenericName[zh_CN]=Web æµè§å¨
+GenericName[zh_TW]=網é ç覽å¨
+Comment=Browse the web
+Comment[ar]=تصÙØ Ø§ÙاÙترÙت
+Comment[az]=Vebi gÉzin
+Comment[be]=ÐандÑаваÑÑ Ð¿Ð° павÑÑÑнÑнÑ
+Comment[bg]=СÑÑÑиÑане в инÑеÑнеÑ
+Comment[bn]=à¦à§à§à¦¬ বà§à¦°à¦¾à¦à¦ à¦à¦°à§à¦¨
+Comment[bs]=Pregledaj na internetu
+Comment[ca]=Navegueu per la web
+Comment[cs]=ProhlÞet WWW
+Comment[cy]=Pori'r we
+Comment[da]=Surf på internettet
+Comment[de]=Im Web surfen
+Comment[el]=ΠεÏιήγηÏη ÏÏον ÏαγκÏÏμιο ιÏÏÏ
+Comment[en_CA]=Browse the web
+Comment[en_GB]=Browse the web
+Comment[es]=Navegar por la web
+Comment[et]=Sirvi veebi
+Comment[eu]=Arakatu web-a
+Comment[fi]=Selaa WWW:tä
+Comment[fr]=Naviguer sur Internet
+Comment[ga]=Brabhsáil an LÃon
+Comment[gu]=વà«àª¬àª®àª¾àª શà«àª§à«
+Comment[he]=×××ש ×רשת
+Comment[hi]=वà¥à¤¬ बà¥à¤°à¤¾à¤à¤à¤¼ à¤à¤°à¥à¤
+Comment[hr]=Pregledaj Web
+Comment[hu]=A világháló böngészése
+Comment[id]=Jelajah web
+Comment[it]=Esplora il web
+Comment[ja]=ã¦ã§ããé²è¦§ãã¾ã
+Comment[ko]=ì¹ì ëì ë¤ëëë¤
+Comment[li]=Blajere op internet
+Comment[lt]=Naršyti internete
+Comment[mk]=ÐÑелиÑÑÑваÑÑе на веб
+Comment[ml]=വലà´àµà´àµà´àµà´àµ തിരയàµà´
+Comment[mn]=Ðеб бÑоÑзе Ñ
ийÑ
+Comment[ms]=Layari web
+Comment[nb]=Surf på nettet
+Comment[nl]=Websurfen
+Comment[nn]=Surf på nettet
+Comment[no]=Surf på nettet
+Comment[pa]=ਵà©à¨¬ ਬਰਾà¨à¨à¨¼
+Comment[pl]=PrzeglÄ
danie stron WWW
+Comment[pt]=Navegar na web
+Comment[pt_BR]=Navegar na web
+Comment[ro]=Navigare Internet
+Comment[ru]=Ðеб-бÑаÑзеÑ
+Comment[sk]=Prehliadať internet
+Comment[sl]=Brskaj po spletu
+Comment[sq]=Eksploro web-in
+Comment[sr]=ÐÑÐµÐ³Ð»ÐµÐ´Ð°Ñ Ð²ÐµÐ±
+Comment[sr at Latn]=Pregledaj veb
+Comment[sv]=Surfa på nätet
+Comment[ta]=வலà¯à®¯à®¿à®²à¯ à®à®²à®¾à®µà¯
+Comment[th]=à¹à¸à¹à¸à¸²à¸à¹à¸§à¹à¸à¸à¸£à¸²à¸§à¹à¸à¸à¸£à¹ Firefox
+Comment[tk]=Webi Ahtar
+Comment[tr]=Web'e Gözat
+Comment[uk]=ÐÑогÑама пеÑеглÑÐ´Ñ web-ÑÑоÑÑнок
+Comment[vi]=Duyá»t web
+Comment[wa]=Naivyî avå les waibes
+Comment[zh_CN]=æµè§ Web
+Comment[zh_TW]=ç覽網é
Exec=firefox %U
-Icon=@FIREFOX_ICON@
+StartupNotify=true
Terminal=false
Type=Application
+Icon=@FIREFOX_ICON@
Categories=Application;Network;
-Encoding=UTF-8
+MimeType=text/html;text/xml;application/xhtml+xml;
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-browser_app_Makefile.in /junk/wk/www/firefox/files/patch-browser_app_Makefile.in
--- /usr/HEAD/ports/www/firefox/files/patch-browser_app_Makefile.in Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-browser_app_Makefile.in Tue Dec 28 10:00:40 2004
@@ -0,0 +1,8 @@
+--- browser/app/Makefile.in.orig Sun Nov 7 01:33:34 2004
++++ browser/app/Makefile.in Tue Dec 28 08:59:01 2004
+@@ -320,4 +320,4 @@
+ $(INSTALL) $^ $(DIST)/bin/defaults/profile
+
+ install:: $(srcdir)/profile/prefs.js
+- $(SYSINSTALL) $(IFLAGS1) $^ $(destdir)$(bindir)/defaults/profile
++ $(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(bindir)/defaults/profile
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-browser_app_mozilla.in /junk/wk/www/firefox/files/patch-browser_app_mozilla.in
--- /usr/HEAD/ports/www/firefox/files/patch-browser_app_mozilla.in Tue Dec 28 07:49:46 2004
+++ /junk/wk/www/firefox/files/patch-browser_app_mozilla.in Tue Dec 28 09:56:19 2004
@@ -1,5 +1,5 @@
---- browser/app/mozilla.in.orig Tue Oct 26 05:26:11 2004
-+++ browser/app/mozilla.in Mon Dec 27 19:15:52 2004
+--- browser/app/mozilla.in.orig Tue Oct 26 11:26:11 2004
++++ browser/app/mozilla.in Tue Dec 28 09:54:30 2004
@@ -110,6 +110,7 @@
# Check default compile-time libdir
if [ -x "$moz_libdir/run-mozilla.sh" ]; then
@@ -13,12 +13,12 @@
done #last arg
-if [ `expr "${_optLast}" : '.*:/.*'` -eq 0 -a \( -f "${_optLast}" -o -d "${_optLast}" \) ]; then
-+if [ `expr -- "${_optLast}" : '.*:/.*'` -eq 0 -a \( -f "${_optLast}" -o -d "${_optLast}" \) ]; then
++if [ `expr "X${_optLast}" : '.*:/.*'` -eq 0 -a \( -f "${_optLast}" -o -d "${_optLast}" \) ]; then
# Last argument seems to be a local file/directory
# Check, if it is absolutely specified (ie. /home/foo/file vs. ./file)
# If it is just "relatively" (./file) specified, make it absolutely
- [ `expr "${_optLast}" : '/.*'` -eq 0 ] && _optLast="file://`pwd`/${_optLast}"
-+ [ `expr -- "${_optLast}" : '/.*'` -eq 0 ] && _optLast="file://`pwd`/${_optLast}"
++ [ `expr "X${_optLast}" : 'X/.*'` -eq 0 ] && _optLast="file://`pwd`/${_optLast}"
fi
################################################################ Parse Arguments
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-browser_app_profile_extensions_classic_install.rdf.in /junk/wk/www/firefox/files/patch-browser_app_profile_extensions_classic_install.rdf.in
--- /usr/HEAD/ports/www/firefox/files/patch-browser_app_profile_extensions_classic_install.rdf.in Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-browser_app_profile_extensions_classic_install.rdf.in Tue Dec 28 10:04:19 2004
@@ -0,0 +1,18 @@
+--- browser/app/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf.in.orig Sat Oct 16 02:04:14 2004
++++ browser/app/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf.in Tue Dec 28 08:59:01 2004
+@@ -29,6 +29,15 @@
+ <em:contributor>Mozilla Contributors</em:contributor>
+
+ <em:internalName>classic/1.0</em:internalName>
++
++ <em:file>
++ <Description about="urn:mozilla:extension:file:classic.jar">
++ <em:skin>skin/classic/browser/</em:skin>
++ <em:skin>skin/classic/global/</em:skin>
++ <em:skin>skin/classic/communicator/</em:skin>
++ <em:skin>skin/classic/mozapps/</em:skin>
++ </Description>
++ </em:file>
+ </Description>
+
+ </RDF>
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-browser_app_profile_firefox.js /junk/wk/www/firefox/files/patch-browser_app_profile_firefox.js
--- /usr/HEAD/ports/www/firefox/files/patch-browser_app_profile_firefox.js Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-browser_app_profile_firefox.js Tue Dec 28 10:12:55 2004
@@ -0,0 +1,48 @@
+--- browser/app/profile/firefox.js.orig Fri Nov 5 10:10:05 2004
++++ browser/app/profile/firefox.js Tue Dec 28 10:12:06 2004
+@@ -62,8 +62,8 @@
+ );
+
+ // App-specific update preferences
+-pref("app.update.enabled", true); // Whether or not app updates are enabled
+-pref("app.update.autoUpdateEnabled", true); // Whether or not background app updates
++pref("app.update.enabled", false); // Whether or not app updates are enabled
++pref("app.update.autoUpdateEnabled", false); // Whether or not background app updates
+ // are enabled
+ pref("app.update.url", "chrome://mozapps/locale/update/update.properties");
+ pref("app.update.updatesAvailable", false);
+@@ -81,7 +81,7 @@
+ // .. etc ..
+ //
+ pref("extensions.update.enabled", true);
+-pref("extensions.update.autoUpdateEnabled", true);
++pref("extensions.update.autoUpdateEnabled", false);
+ pref("extensions.update.url", "chrome://mozapps/locale/extensions/extensions.properties");
+ pref("extensions.update.autoUpdate", false); // Automatically download and install
+ // updates to themes and extensions.
+@@ -136,7 +136,7 @@
+
+ // Whether or not the application should check at startup each time if it
+ // is the default browser.
+-pref("browser.shell.checkDefaultBrowser", true);
++pref("browser.shell.checkDefaultBrowser", false);
+
+ // 0 = blank, 1 = home (browser.startup.homepage), 2 = last
+ // XXXBlake Remove this stupid pref
+@@ -236,6 +236,9 @@
+ pref("network.cookie.cookieBehavior", 0); // cookies enabled
+ pref("network.cookie.enableForCurrentSessionOnly", false);
+
++// Use LANG environment variable to choose locale
++pref("intl.locale.matchOS", true);
++
+ // l12n and i18n
+ pref("intl.accept_languages", "chrome://global/locale/intl.properties");
+ // collationOption is only set on linux for japanese. see bug 18338 and 62015
+@@ -326,3 +329,6 @@
+
+ // plugin finder service
+ pref("pfs.datasource.url", "chrome://mozapps/locale/plugins/plugins.properties");
++
++// enable negotiate extension
++pref("network.negotiate-auth.trusted-uris", "https://");
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-browser_base_content_aboutDialog.css /junk/wk/www/firefox/files/patch-browser_base_content_aboutDialog.css
--- /usr/HEAD/ports/www/firefox/files/patch-browser_base_content_aboutDialog.css Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-browser_base_content_aboutDialog.css Tue Dec 28 10:18:33 2004
@@ -0,0 +1,14 @@
+--- browser/base/content/aboutDialog.css.orig Sat Mar 13 02:49:59 2004
++++ browser/base/content/aboutDialog.css Tue Dec 28 08:59:01 2004
+@@ -26,11 +26,7 @@
+ -moz-appearance: none;
+ overflow: hidden;
+
+-#ifdef XP_MACOSX
+ height: 3.8em;
+-#else
+- height: 2.4em;
+-#endif
+
+ border: none;
+ }
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-browser_components_prefwindow_content_pref-advanced.xul /junk/wk/www/firefox/files/patch-browser_components_prefwindow_content_pref-advanced.xul
--- /usr/HEAD/ports/www/firefox/files/patch-browser_components_prefwindow_content_pref-advanced.xul Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-browser_components_prefwindow_content_pref-advanced.xul Tue Dec 28 10:21:54 2004
@@ -0,0 +1,14 @@
+--- browser/components/prefwindow/content/pref-advanced.xul.orig Sat Oct 30 06:27:23 2004
++++ browser/components/prefwindow/content/pref-advanced.xul Tue Dec 28 08:59:01 2004
+@@ -72,9 +72,9 @@
+ open="true" persist="open" clearhidden="true" align="left">
+ <label>&softwareupdateinfo.label;</label>
+ <vbox class="indent" align="left">
+- <checkbox id="enableSmartUpdate"
++ <!-- checkbox id="enableSmartUpdate"
+ label="&enableSmartUpdate.label;" accesskey="&enableSmartUpdate.accesskey;"
+- prefstring="app.update.autoUpdateEnabled"/>
++ prefstring="app.update.autoUpdateEnabled"/ -->
+ <checkbox id="enableExtensionUpdate"
+ label="&enableExtensionUpdate.label;" accesskey="&enableExtensionUpdate.accesskey;"
+ prefstring="extensions.update.autoUpdateEnabled"/>
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-content_events_src_nsEventStateManager.cpp /junk/wk/www/firefox/files/patch-content_events_src_nsEventStateManager.cpp
--- /usr/HEAD/ports/www/firefox/files/patch-content_events_src_nsEventStateManager.cpp Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-content_events_src_nsEventStateManager.cpp Tue Dec 28 10:25:50 2004
@@ -0,0 +1,122 @@
+--- content/events/src/nsEventStateManager.cpp.orig Wed Oct 27 00:39:33 2004
++++ content/events/src/nsEventStateManager.cpp Tue Dec 28 08:59:02 2004
+@@ -22,6 +22,9 @@
+ * Contributor(s):
+ * Makoto Kato <m_kato at ga2.so-net.ne.jp>
+ * Dean Tessman <dean_tessman at hotmail.com>
++ * Andrew Wellington <proton at wiretapped.net>
++ * Graham Dennis <u3952328 at anu.edu.au>
++ * Thomas Kleffel <thomas.kleffel at maintech.de>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+@@ -1979,6 +1982,109 @@
+ frameSel->SetMouseDownState(PR_FALSE);
+ }
+ }
++ }
++ break;
++ case NS_USER_DEFINED_EVENT: // In reality an extended mouse event
++ {
++ nsExtendedMouseEventStatus *eMEStatus;
++ nsMouseEvent *mEvent = (nsMouseEvent* )aEvent;
++ eMEStatus = (nsExtendedMouseEventStatus *)&mEvent->clickCount;
++ nsresult rv;
++ char ourbutton=0;
++ char *string, *suffix, *straction, *strnumlines;
++ PRInt32 action;
++ PRInt32 numLines;
++
++ rv = getPrefBranch();
++ if (NS_FAILED(rv)) return rv;
++
++ // adding 2 below so the maximum number of mouse buttons we can
++ // support is 99 but to represent the buttons in buttonlist
++ // we're going to map 10->35 onto 'a'->'z'
++ // the storage actually supports 256
++ if(eMEStatus->button > 35) break;
++ if(eMEStatus->button > 9)
++ ourbutton = 'a' + eMEStatus->button -9;
++ else
++ ourbutton = '0' + eMEStatus->button;
++ mPrefBranch->GetCharPref("mousebuttonsextended.buttonlist", &string);
++ if(!string) break;
++ if(!strchr(string, ourbutton)) {
++ free(string);
++ break;
++ }
++ free(string);
++ switch(eMEStatus->event)
++ {
++ case nsExtendedMouseEventStatus_up:
++ suffix=strdup(".up");
++ break;
++
++ case nsExtendedMouseEventStatus_down:
++ suffix=strdup(".down");
++ break;
++ default:
++ return NS_OK;
++ }
++ straction= (char *)memset(malloc(100), 0, 100);
++ strnumlines=(char *)memset(malloc(100), 0, 100);
++
++ strcpy(straction, "mousebuttonsextended.buttons.X.action");
++ strcpy(strnumlines, "mousebuttonsextended.buttons.X.numlines");
++ strcpy(straction+strlen(straction), suffix);
++ strcpy(strnumlines+strlen(strnumlines), suffix);
++
++ string = strchr(straction, 'X'); *string = ourbutton;
++ string = strchr(strnumlines, 'X'); *string = ourbutton;
++
++ mPrefBranch->GetIntPref(straction, &action);
++ mPrefBranch->GetIntPref(strnumlines, &numLines);
++
++ switch (action) {
++
++#if 0 // Because we would have to create a msEvent
++ case MOUSE_SCROLL_N_LINES:
++ case MOUSE_SCROLL_PAGE:
++ {
++ DoWheelScroll(aPresContext, aTargetFrame, msEvent, numLines,
++ (msEvent->scrollFlags & nsMouseScrollEvent::kIsHorizontal),
++ (action == MOUSE_SCROLL_PAGE), PR_FALSE);
++
++ }
++ break;
++#endif
++ case MOUSE_SCROLL_HISTORY:
++ {
++ nsCOMPtr<nsISupports> pcContainer;
++ pcContainer = mPresContext->GetContainer();
++ if (pcContainer) {
++ nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(pcContainer));
++ if (webNav) {
++ if (numLines < 0)
++ webNav->GoBack();
++ else
++ webNav->GoForward();
++ }
++ }
++ }
++ break;
++
++ case MOUSE_SCROLL_TEXTSIZE:
++ {
++ // Exclude form controls and XUL content.
++ nsIContent* content = aTargetFrame->GetContent();
++ if (content &&
++ !content->IsContentOfType(nsIContent::eHTML_FORM_CONTROL) &&
++ !content->IsContentOfType(nsIContent::eXUL))
++ {
++ ChangeTextSize((numLines > 0) ? 1 : -1);
++ }
++ }
++ break;
++
++ default: // Including -1 (do nothing)
++ break;
++ }
+ }
+ break;
+ case NS_MOUSE_SCROLL:
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-gfx_src_gtk_fontEncoding.properties /junk/wk/www/firefox/files/patch-gfx_src_gtk_fontEncoding.properties
--- /usr/HEAD/ports/www/firefox/files/patch-gfx_src_gtk_fontEncoding.properties Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-gfx_src_gtk_fontEncoding.properties Tue Dec 28 10:33:02 2004
@@ -0,0 +1,13 @@
+--- gfx/src/gtk/fontEncoding.properties.orig Wed Jun 25 08:00:14 2003
++++ gfx/src/gtk/fontEncoding.properties Tue Dec 28 08:59:02 2004
+@@ -54,8 +54,8 @@
+ # font, you do need them.
+
+ # Symbol font
+-#encoding.symbol.ttf = Adobe-Symbol-Encoding
+-#encoding.symbol.ftcmap = mac_roman
++encoding.symbol.ttf = Adobe-Symbol-Encoding
++encoding.symbol.ftcmap = mac_roman
+
+ # TeX's Computer Modern fonts (Roman, Math Italic, Symbol and Extension)
+
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-htmlparser_src_nsParser.cpp /junk/wk/www/firefox/files/patch-htmlparser_src_nsParser.cpp
--- /usr/HEAD/ports/www/firefox/files/patch-htmlparser_src_nsParser.cpp Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-htmlparser_src_nsParser.cpp Tue Dec 28 10:36:30 2004
@@ -0,0 +1,25 @@
+--- htmlparser/src/nsParser.cpp.orig Fri Nov 5 07:40:55 2004
++++ htmlparser/src/nsParser.cpp Tue Dec 28 08:59:02 2004
+@@ -2565,21 +2565,7 @@
+ nsresult rv = NS_OK;
+
+ if(eOnStart==mParserContext->mStreamListenerState) {
+- nsAutoString temp;
+-
+- //If you're here, then OnDataAvailable() never got called.
+- //Prior to necko, we never dealt with this case, but the problem may have existed.
+- //What we'll do (for now at least) is construct a blank HTML document.
+- if (!mParserContext->mMimeType.Equals(NS_LITERAL_CSTRING(kPlainTextContentType)))
+- {
+- temp.Assign(NS_LITERAL_STRING("<html><body></body></html>"));
+- }
+- // XXX: until bug #108067 has been fixed we must ensure that *something*
+- // is in the scanner! so, for now just put in a single space.
+- else {
+- temp.Assign(NS_LITERAL_STRING(" "));
+- }
+- mParserContext->mScanner->Append(temp);
++ //Everybody can live with an empty input stream, so just resume parsing.
+ rv = ResumeParse(PR_TRUE,PR_TRUE);
+ }
+
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-layout_html_document_src_html.css /junk/wk/www/firefox/files/patch-layout_html_document_src_html.css
--- /usr/HEAD/ports/www/firefox/files/patch-layout_html_document_src_html.css Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-layout_html_document_src_html.css Tue Dec 28 10:39:12 2004
@@ -0,0 +1,16 @@
+--- layout/html/document/src/html.css.orig Fri Mar 19 02:34:47 2004
++++ layout/html/document/src/html.css Tue Dec 28 08:59:02 2004
+@@ -441,6 +441,13 @@
+ /* PRINT ONLY rules follow */
+ @media print {
+
++ body {
++ font-family: times, serif;
++ }
++ tt, pre {
++ font-family: courier, monospace;
++ }
++
+ marquee { -moz-binding: none; }
+
+ *|*:-moz-any-link img, img[usemap], object[usemap],
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-modules_libpref_src_init_all.js /junk/wk/www/firefox/files/patch-modules_libpref_src_init_all.js
--- /usr/HEAD/ports/www/firefox/files/patch-modules_libpref_src_init_all.js Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-modules_libpref_src_init_all.js Tue Dec 28 10:46:34 2004
@@ -0,0 +1,76 @@
+--- modules/libpref/src/init/all.js.orig Fri Nov 5 00:39:57 2004
++++ modules/libpref/src/init/all.js Tue Dec 28 08:59:01 2004
+@@ -49,8 +49,8 @@
+
+ pref("keyword.URL", "http://www.google.com/search?ie=UTF-8&oe=utf-8&q=");
+ pref("keyword.enabled", false);
+-pref("general.useragent.locale", "chrome://navigator/locale/navigator.properties");
+-pref("general.useragent.contentlocale", "chrome://navigator-region/locale/region.properties");
++pref("general.useragent.locale", "chrome://global/locale/intl.properties");
++pref("general.useragent.contentlocale", "chrome://browser-region/locale/region.properties");
+
+ pref("general.config.obscure_value", 13); // for MCD .cfg files
+
+@@ -640,31 +640,30 @@
+ pref("converter.html2txt.structs", true); // Output structured phrases (strong, em, code, sub, sup, b, i, u)
+ pref("converter.html2txt.header_strategy", 1); // 0 = no indention; 1 = indention, increased with header level; 2 = numbering and slight indention
+
+-pref("intl.accept_languages", "chrome://navigator/locale/navigator.properties");
++pref("intl.accept_languages", "chrome://global/locale/intl.properties");
+ pref("intl.accept_charsets", "iso-8859-1,*,utf-8");
+-pref("intl.collationOption", "chrome://navigator-platform/locale/navigator.properties");
+-pref("intl.menuitems.alwaysappendaccesskeys","chrome://navigator/locale/navigator.properties");
+-pref("intl.charsetmenu.browser.static", "chrome://navigator/locale/navigator.properties");
+-pref("intl.charsetmenu.browser.more1", "chrome://navigator/locale/navigator.properties");
+-pref("intl.charsetmenu.browser.more2", "chrome://navigator/locale/navigator.properties");
+-pref("intl.charsetmenu.browser.more3", "chrome://navigator/locale/navigator.properties");
+-pref("intl.charsetmenu.browser.more4", "chrome://navigator/locale/navigator.properties");
+-pref("intl.charsetmenu.browser.more5", "chrome://navigator/locale/navigator.properties");
+-pref("intl.charsetmenu.browser.unicode", "chrome://navigator/locale/navigator.properties");
+-pref("intl.charsetmenu.mailedit", "chrome://navigator/locale/navigator.properties");
++pref("intl.collationOption", "chrome://global-platform/locale/intl.properties");
++pref("intl.menuitems.alwaysappendaccesskeys","chrome://global/locale/intl.properties");
++pref("intl.charsetmenu.browser.static", "chrome://global/locale/intl.properties");
++pref("intl.charsetmenu.browser.more1", "chrome://global/locale/intl.properties");
++pref("intl.charsetmenu.browser.more2", "chrome://global/locale/intl.properties");
++pref("intl.charsetmenu.browser.more3", "chrome://global/locale/intl.properties");
++pref("intl.charsetmenu.browser.more4", "chrome://global/locale/intl.properties");
++pref("intl.charsetmenu.browser.more5", "chrome://global/locale/intl.properties");
++pref("intl.charsetmenu.browser.unicode", "chrome://global/locale/intl.properties");
++pref("intl.charsetmenu.mailedit", "chrome://global/locale/intl.properties");
+ pref("intl.charsetmenu.browser.cache", "");
+ pref("intl.charsetmenu.mailview.cache", "");
+ pref("intl.charsetmenu.composer.cache", "");
+ pref("intl.charsetmenu.browser.cache.size", 5);
+-pref("intl.charset.detector", "chrome://navigator/locale/navigator.properties");
+-pref("intl.charset.default", "chrome://navigator-platform/locale/navigator.properties");
+-pref("intl.content.langcode", "chrome://communicator-region/locale/region.properties");
++pref("intl.charset.detector", "chrome://global/locale/intl.properties");
++pref("intl.charset.default", "chrome://global-platform/locale/intl.properties");
+ pref("intl.locale.matchOS", false);
+ // fallback charset list for Unicode conversion (converting from Unicode)
+ // currently used for mail send only to handle symbol characters (e.g Euro, trademark, smartquotes)
+ // for ISO-8859-1
+ pref("intl.fallbackCharsetList.ISO-8859-1", "windows-1252");
+-pref("font.language.group", "chrome://navigator/locale/navigator.properties");
++pref("font.language.group", "chrome://global/locale/intl.properties");
+
+ pref("images.dither", "auto");
+ pref("security.directory", "");
+@@ -719,6 +718,16 @@
+ pref("mousewheel.horizscroll.withaltkey.action",2);
+ pref("mousewheel.horizscroll.withaltkey.numlines",-1);
+ pref("mousewheel.horizscroll.withaltkey.sysnumlines",false);
++
++pref("mousebuttonsextended.buttonlist", "67");
++pref("mousebuttonsextended.buttons.6.action.up", 2);
++pref("mousebuttonsextended.buttons.6.numlines.up", -1);
++pref("mousebuttonsextended.buttons.6.action.down", -1);
++pref("mousebuttonsextended.buttons.6.numlines.down", -1);
++pref("mousebuttonsextended.buttons.7.action.up", 2);
++pref("mousebuttonsextended.buttons.7.numlines.up", 1);
++pref("mousebuttonsextended.buttons.7.action.down", -1);
++pref("mousebuttonsextended.buttons.7.numlines.down", -1);
+
+ pref("profile.confirm_automigration",true);
+ // profile.migration_behavior determines how the profiles root is set
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-netwerk_protocol_ftp_src_nsFtpConnectionThread.cpp /junk/wk/www/firefox/files/patch-netwerk_protocol_ftp_src_nsFtpConnectionThread.cpp
--- /usr/HEAD/ports/www/firefox/files/patch-netwerk_protocol_ftp_src_nsFtpConnectionThread.cpp Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-netwerk_protocol_ftp_src_nsFtpConnectionThread.cpp Tue Dec 28 10:47:35 2004
@@ -0,0 +1,57 @@
+--- netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp.orig Fri Jul 30 05:16:41 2004
++++ netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp Tue Dec 28 08:59:02 2004
+@@ -1051,22 +1051,25 @@
+ mResponseMsg = "";
+
+ if (mAnonymous) {
+- char* anonPassword = nsnull;
+- PRBool useRealEmail = PR_FALSE;
+- nsCOMPtr<nsIPrefBranch> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID);
+- if (prefs) {
+- rv = prefs->GetBoolPref("advanced.mailftp", &useRealEmail);
+- if (NS_SUCCEEDED(rv) && useRealEmail)
+- prefs->GetCharPref("network.ftp.anonymous_password", &anonPassword);
+- }
+- if (useRealEmail && anonPassword && *anonPassword != '\0') {
+- passwordStr.Append(anonPassword);
+- nsMemory::Free(anonPassword);
+- }
+- else {
+- // We need to default to a valid email address - bug 101027
+- // example.com is reserved (rfc2606), so use that
+- passwordStr.Append("mozilla at example.com");
++ if (!mPassword.IsEmpty()) {
++ // XXX Is UTF-8 the best choice?
++ AppendUTF16toUTF8(mPassword, passwordStr);
++ } else {
++ nsXPIDLCString anonPassword;
++ PRBool useRealEmail = PR_FALSE;
++ nsCOMPtr<nsIPrefBranch> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID);
++ if (prefs) {
++ rv = prefs->GetBoolPref("advanced.mailftp", &useRealEmail);
++ if (NS_SUCCEEDED(rv) && useRealEmail)
++ prefs->GetCharPref("network.ftp.anonymous_password", getter_Copies(anonPassword));
++ }
++ if (!anonPassword.IsEmpty()) {
++ passwordStr.Append(anonPassword);
++ } else {
++ // We need to default to a valid email address - bug 101027
++ // example.com is reserved (rfc2606), so use that
++ passwordStr.Append("mozilla at example.com");
++ }
+ }
+ } else {
+ if (mPassword.IsEmpty() || mRetryPass) {
+@@ -1144,6 +1147,12 @@
+ pm->RemoveUser(prePath, EmptyString());
+ }
+ }
++ }
++
++ // If the login was anonymous, and it failed, try again with a username
++ if (mAnonymous) {
++ mAnonymous = PR_FALSE;
++ return FTP_S_USER;
+ }
+
+ mRetryPass = PR_TRUE;
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-toolkit_mozapps_extensions_content_extensions.js /junk/wk/www/firefox/files/patch-toolkit_mozapps_extensions_content_extensions.js
--- /usr/HEAD/ports/www/firefox/files/patch-toolkit_mozapps_extensions_content_extensions.js Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-toolkit_mozapps_extensions_content_extensions.js Tue Dec 28 10:51:15 2004
@@ -0,0 +1,22 @@
+--- toolkit/mozapps/extensions/content/extensions.js.orig Fri Oct 8 10:53:27 2004
++++ toolkit/mozapps/extensions/content/extensions.js Tue Dec 28 08:59:02 2004
+@@ -678,7 +678,8 @@
+ return !selectedItem ||
+ (selectedItem &&
+ selectedItem.getAttribute("toBeUninstalled") != "true" &&
+- selectedItem.getAttribute("toBeInstalled") != "true");
++ selectedItem.getAttribute("toBeInstalled") != "true" &&
++ selectedItem.getAttribute("locked") != "true");
+ case "cmd_reallyEnable":
+ // controls whether to show Enable or Disable in extensions' context menu
+ return selectedItem &&
+@@ -694,8 +695,7 @@
+ case "cmd_disable":
+ return selectedItem &&
+ !selectedItem.disabled &&
+- selectedItem.getAttribute("toBeUninstalled") != "true" &&
+- selectedItem.getAttribute("locked") != "true";
++ selectedItem.getAttribute("toBeUninstalled") != "true";
+ case "cmd_movetop":
+ return selectedItem && (gExtensionsView.children[0] != selectedItem);
+ case "cmd_moveup":
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-toolkit_mozapps_extensions_src_nsExtensionManager.js.in /junk/wk/www/firefox/files/patch-toolkit_mozapps_extensions_src_nsExtensionManager.js.in
--- /usr/HEAD/ports/www/firefox/files/patch-toolkit_mozapps_extensions_src_nsExtensionManager.js.in Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-toolkit_mozapps_extensions_src_nsExtensionManager.js.in Tue Dec 28 10:51:15 2004
@@ -0,0 +1,298 @@
+--- toolkit/mozapps/extensions/src/nsExtensionManager.js.in.orig Tue Oct 12 08:19:47 2004
++++ toolkit/mozapps/extensions/src/nsExtensionManager.js.in Tue Dec 28 08:59:02 2004
+@@ -20,6 +20,7 @@
+ *
+ * Contributor(s):
+ * Ben Goodger <ben at bengoodger.com>
++ * Mike Hommey <mh at glandium.org>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+@@ -144,6 +145,19 @@
+ }
+
+ // Returns the file at the appropriate point in a directory hierarchy under
++// the specified key. Does NOT create the file NOR the directories along the
++// way.
++function getFileNoCreateDir(aKey, aPathToFile)
++{
++ var subdirs = [];
++ for (var i = 0; i < aPathToFile.length - 1; ++i)
++ subdirs.push(aPathToFile[i]);
++ var file = getDirNoCreate(aKey, subdirs);
++ file.append(aPathToFile[aPathToFile.length - 1]);
++ return file;
++}
++
++// Returns the file at the appropriate point in a directory hierarchy under
+ // the specified key, creating directories along the way if necessary. Does
+ // NOT create the file.
+ function getFile(aKey, aPathToFile)
+@@ -675,9 +689,17 @@
+ function nsInstallLogReader(aExtensionID, aIsProfile, aListener)
+ {
+ this._isProfile = aIsProfile;
+- this.uninstallLog = getFile(getDirKey(aIsProfile),
++ this.uninstallLog = getFileNoCreateDir(getDirKey(aIsProfile),
+ [DIR_EXTENSIONS, aExtensionID,
+ DIR_UNINSTALL, FILE_UNINSTALL_LOG]);
++ // If the uninstall Log doesn't exist in profile, let's give a try in
++ // global extension pool.
++ if (aIsProfile && !this.uninstallLog.exists()) {
++ this._isProfile = false;
++ this.uninstallLog = getFileNoCreateDir(getDirKey(false),
++ [DIR_EXTENSIONS, aExtensionID,
++ DIR_UNINSTALL, FILE_UNINSTALL_LOG]);
++ }
+ this._listener = aListener
+ }
+
+@@ -829,26 +851,20 @@
+ {
+ // extension,{GUID} or theme,{GUID}
+ var parts = aLine.split(",");
+- var manifest = getFile(KEY_APPDIR,
++ var manifest = getFileNoCreateDir(KEY_APPDIR,
+ [DIR_EXTENSIONS, parts[1], FILE_INSTALL_MANIFEST]);
+ if (parts.length != 2)
+ return;
+
+- if (!manifest.exists()) {
+- defaultManifest = defaultFile = getFile(KEY_DEFAULTS,
+- [DIR_DEFAULTS_EXTENSIONS, parts[1], FILE_INSTALL_MANIFEST]);
+- var extensionDir = getDir(KEY_APPDIR, [DIR_EXTENSIONS, parts[1]]);
+- defaultManifest.copyTo(extensionDir, FILE_INSTALL_MANIFEST);
+- manifest = getFile(KEY_APPDIR,
+- [DIR_EXTENSIONS, parts[1], FILE_INSTALL_MANIFEST]);
+- }
+- switch (parts[0]) {
+- case this.TOKEN_EXTENSION:
+- this._manager.ensurePreConfiguredItem(parts[1], nsIUpdateItem.TYPE_EXTENSION, manifest);
+- break;
+- case this.TOKEN_THEME:
+- this._manager.ensurePreConfiguredItem(parts[1], nsIUpdateItem.TYPE_THEME, manifest);
+- break;
++ if (manifest.exists()) {
++ switch (parts[0]) {
++ case this.TOKEN_EXTENSION:
++ this._manager.ensurePreConfiguredItem(parts[1], nsIUpdateItem.TYPE_EXTENSION, manifest);
++ break;
++ case this.TOKEN_THEME:
++ this._manager.ensurePreConfiguredItem(parts[1], nsIUpdateItem.TYPE_THEME, manifest);
++ break;
++ }
+ }
+ }
+ };
+@@ -929,7 +945,7 @@
+ this._installExtensionFiles();
+
+ // Load the metadata datasource
+- var metadataFile = getFile(this._extDirKey,
++ var metadataFile = getFileNoCreateDir(this._extDirKey,
+ [DIR_EXTENSIONS, aExtensionID, FILE_INSTALL_MANIFEST]);
+
+ this._metadataDS = getInstallManifest(metadataFile);
+@@ -969,10 +985,12 @@
+
+ _installExtensionFiles: function nsExtensionInstaller__installExtensionFiles ()
+ {
+- var sourceXPI = getFile(this._extDirKey,
++ var sourceXPI = getFileNoCreateDir(this._extDirKey,
+ [DIR_EXTENSIONS, DIR_TEMP,
+ this._extensionID,
+ this._extensionID + ".xpi"]);
++ if (!sourceXPI.exists())
++ return;
+ var zipReader = Components.classes["@mozilla.org/libjar/zip-reader;1"]
+ .createInstance(Components.interfaces.nsIZipReader);
+ zipReader.init(sourceXPI);
+@@ -1752,6 +1770,9 @@
+ // Write bin/components.ini
+ var manifest = getFile(KEY_APPDIR, [FILE_COMPONENT_MANIFEST]);
+ this._writeProfileFile(manifest, this._getComponentsDir, false);
++
++ // Update the Defaults Manifest
++ this._writeDefaults(false);
+ }
+ },
+
+@@ -1823,7 +1844,7 @@
+ cr.selectSkin(KEY_DEFAULT_THEME, true);
+ }
+ catch (e) {
+- dump("*** nsExtensionManager::_disableObsoleteExtensions - failure, catching exception so finalize window can close\n");
++// dump("*** nsExtensionManager::_disableObsoleteExtensions - failure, catching exception so finalize window can close\n");
+ }
+ win.close();
+
+@@ -2002,6 +2023,34 @@
+ this._ds.insertForthcomingItem(aItemID, aItemType, false);
+ var metadataDS = getInstallManifest(aManifest);
+ this._ds.addItemMetadata(aItemID, aItemType, metadataDS, false);
++
++ // Check whether the extension is installable (firefox_version fitting between
++ // em:MaxVersion and em:MinVersion)
++ var extensionID = this.canInstallItem(metadataDS);
++ // |extensionID| must be a GUID string, not a number - a number means failure.
++ if (isNaN(parseInt(extensionID))) {
++ // Do install the extension, meaning we register its chrome and components
++ if (!this._extInstaller)
++ this._extInstaller = new nsExtensionInstaller(this._ds);
++ try {
++ this._extInstaller.install(aItemID, false);
++ }
++ catch (e) {
++ // If the installation failed, we disable the extension in addition
++ // to _not_ uninstalling it (which would fail anyway because it
++ // would be done at launch time... as a user).
++ this._ds.setItemProperty(aItemID, this._ds._emR("toBeUninstalled"),
++ null, false, aItemType);
++ this._ds.setItemProperty(aItemID, this._ds._emR("disabled"),
++ this._ds._emL("true"), false, aItemType);
++ }
++ } else {
++ // disable extensions that aren't installable
++ this._ds.setItemProperty(aItemID, this._ds._emR("disabled"),
++ this._ds._emL("true"), false, aItemType);
++ }
++ // Force locking pre-configured items.
++ this._ds.lockUnlockItem(aItemID, true);
+ },
+
+ checkForMismatches: function nsExtensionManager_checkForMismatches ()
+@@ -2028,22 +2077,31 @@
+ if (items.length > 0) {
+ for (var i = 0; i < items.length; ++i) {
+ // Now disable the extension so it won't hurt anything.
++ var alreadyDisabled = this._ds.getItemProperty(items[i].id, "disabled");
+ var itemType = getItemType(this._ds._getResourceForItem(items[i].id).Value);
+ if (itemType != -1 && itemType & nsIUpdateItem.TYPE_EXTENSION)
+- this.disableExtension(items[i].id);
++ if (!alreadyDisabled) this.disableExtension(items[i].id);
+ else if (itemType & nsIUpdateItem.TYPE_THEME) {
+ if (gPref.prefHasUserValue(PREF_GENERAL_SKINS_SELECTEDSKIN))
+ gPref.clearUserPref(PREF_GENERAL_SKINS_SELECTEDSKIN);
+- this._ds.disableTheme(items[i].id);
++ if (!alreadyDisabled) this._ds.disableTheme(items[i].id);
+ }
+ }
+- var updates = Components.classes["@mozilla.org/updates/update-service;1"]
+- .getService(Components.interfaces.nsIUpdateService);
+- updates.checkForUpdates(items, items.length, nsIUpdateItem.TYPE_ADDON,
+- nsIUpdateService.SOURCE_EVENT_MISMATCH,
+- null);
++ // We want to eliminate locked extensions
++ newitems = [];
++ for (var i = 0; i < items.length; ++i) {
++ if (!this._ds.getItemProperty(items[i].id, "locked"))
++ newitems.push(items[i]);
++ }
++ if (newitems.length > 0) {
++ var updates = Components.classes["@mozilla.org/updates/update-service;1"]
++ .getService(Components.interfaces.nsIUpdateService);
++ updates.checkForUpdates(newitems, newitems.length, nsIUpdateItem.TYPE_ADDON,
++ nsIUpdateService.SOURCE_EVENT_MISMATCH,
++ null);
+
+- needsRestart = true;
++ needsRestart = true;
++ }
+ }
+ }
+
+@@ -2087,7 +2145,7 @@
+ this._writeDefaults(false);
+ }
+ catch (e) {
+- dump("*** ExtensionManager:_updateManifests: no access privileges to application directory, skipping.\n");
++// dump("*** ExtensionManager:_updateManifests: no access privileges to application directory, skipping.\n");
+ };
+ this._writeComponentManifest(true);
+ this._writeDefaults(true);
+@@ -2133,6 +2191,11 @@
+ validExtensions.push({ sourceDir: sourceDir, isProfile: isProfile });
+ }
+
++ // Debian hook to insert defaults/syspref into defaults.ini
++ if ((aFile.leafName == FILE_DEFAULTS) && aIsProfile == false) {
++ validExtensions.push({ sourceDir: getDirNoCreate(getDirKey(false), [DIR_DEFAULTS, "syspref"]), isProfile: false });
++ }
++
+ var lines = ["[Extra Files]\r\n",
+ "Count=" + validExtensions.length + "\r\n"];
+ for (i = 0; i < lines.length; ++i)
+@@ -2545,16 +2608,16 @@
+ this._extEnabler = new nsExtensionEnabler(this._ds);
+
+ var isProfile = this._ds.isProfileItem(aExtensionID);
+- this._extEnabler.enable(aExtensionID, isProfile, aDisable);
++ this._extEnabler.enable(aExtensionID, true, aDisable);
+
+ // clear temporary flags
+ this._ds.setItemProperty(aExtensionID,
+ this._ds._emR("toBeEnabled"),
+- null, isProfile,
++ null, true,
+ nsIUpdateItem.TYPE_EXTENSION);
+ this._ds.setItemProperty(aExtensionID,
+ this._ds._emR("toBeDisabled"),
+- null, isProfile,
++ null, true,
+ nsIUpdateItem.TYPE_EXTENSION);
+ },
+
+@@ -3090,8 +3153,10 @@
+ checkForUpdates: function (aItem, aVersionUpdateOnly)
+ {
+ // A preference setting can disable updating for this item
++ // We'll also skip locked items.
+ try {
+- if (!gPref.getBoolPref(PREF_EM_ITEM_UPDATE_ENABLED.replace(/%UUID%/, aItem.id))) {
++ if (this._updater._emDS.getItemProperty(aItem.id, "locked") ||
++ !gPref.getBoolPref(PREF_EM_ITEM_UPDATE_ENABLED.replace(/%UUID%/, aItem.id))) {
+ gOS.notifyObservers(null, "Update:Extension:Item-Ended", "");
+ this._updater._checkForDone();
+ return;
+@@ -3557,7 +3622,7 @@
+
+ isProfileItem: function nsExtensionsDataSource_isProfileItem (aItemID)
+ {
+- return this.getItemProperty(aItemID, "installLocation") != "global";
++ return this.getItemProperty(aItemID, "installLocation") == "profile";
+ },
+
+ _setProperty: function nsExtensionsDataSource__setProperty (aDS, aSource, aProperty, aNewValue)
+@@ -3845,26 +3910,26 @@
+ enableExtension: function nsExtensionsDataSource_enableExtension (aExtensionID)
+ {
+ this.setItemProperty(aExtensionID, this._emR("toBeEnabled"),
+- this._emL("true"), this.isProfileItem(aExtensionID),
++ this._emL("true"), true,
+ nsIUpdateItem.TYPE_EXTENSION);
+ this.setItemProperty(aExtensionID, this._emR("toBeDisabled"),
+- null, this.isProfileItem(aExtensionID),
++ null, true,
+ nsIUpdateItem.TYPE_EXTENSION);
+ this.setItemProperty(aExtensionID, this._emR("disabled"),
+- null, this.isProfileItem(aExtensionID),
++ null, true,
+ nsIUpdateItem.TYPE_EXTENSION);
+ },
+
+ disableExtension: function nsExtensionsDataSource_disableExtension (aExtensionID)
+ {
+ this.setItemProperty(aExtensionID, this._emR("toBeDisabled"),
+- this._emL("true"), this.isProfileItem(aExtensionID),
++ this._emL("true"), true,
+ nsIUpdateItem.TYPE_EXTENSION);
+ this.setItemProperty(aExtensionID, this._emR("toBeEnabled"),
+- null, this.isProfileItem(aExtensionID),
++ null, true,
+ nsIUpdateItem.TYPE_EXTENSION);
+ this.setItemProperty(aExtensionID, this._emR("disabled"),
+- this._emL("true"), this.isProfileItem(aExtensionID),
++ this._emL("true"), true,
+ nsIUpdateItem.TYPE_EXTENSION);
+ },
+
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-toolkit_mozapps_update_src_nsUpdateService.js.in /junk/wk/www/firefox/files/patch-toolkit_mozapps_update_src_nsUpdateService.js.in
--- /usr/HEAD/ports/www/firefox/files/patch-toolkit_mozapps_update_src_nsUpdateService.js.in Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-toolkit_mozapps_update_src_nsUpdateService.js.in Tue Dec 28 10:51:15 2004
@@ -0,0 +1,16 @@
+--- toolkit/mozapps/update/src/nsUpdateService.js.in.orig Sun Oct 3 23:06:30 2004
++++ toolkit/mozapps/update/src/nsUpdateService.js.in Tue Dec 28 08:59:02 2004
+@@ -178,9 +178,10 @@
+ if (aRequestedTypes & nsIUpdateItem.TYPE_THEME)
+ types |= nsIUpdateItem.TYPE_THEME;
+ }
+- if (appUpdateEnabled &&
+- (aRequestedTypes & nsIUpdateItem.TYPE_APP))
+- types |= nsIUpdateItem.TYPE_APP;
++ // Disable application updates
++ //if (appUpdateEnabled &&
++ // (aRequestedTypes & nsIUpdateItem.TYPE_APP))
++ // types |= nsIUpdateItem.TYPE_APP;
+
+ return types;
+ },
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-uriloader_exthandler_unix_nsGNOMERegistry.cpp /junk/wk/www/firefox/files/patch-uriloader_exthandler_unix_nsGNOMERegistry.cpp
--- /usr/HEAD/ports/www/firefox/files/patch-uriloader_exthandler_unix_nsGNOMERegistry.cpp Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-uriloader_exthandler_unix_nsGNOMERegistry.cpp Tue Dec 28 09:47:26 2004
@@ -0,0 +1,29 @@
+--- uriloader/exthandler/unix/nsGNOMERegistry.cpp.orig Fri Dec 24 04:30:00 2004
++++ uriloader/exthandler/unix/nsGNOMERegistry.cpp Fri Dec 24 04:34:05 2004
+@@ -143,7 +143,7 @@
+ PR_END_MACRO
+
+ // Attempt to open libgconf
+- gconfLib = LoadVersionedLibrary("gconf-2", ".4");
++ gconfLib = PR_LoadLibrary("libgconf-2.so");
+ ENSURE_LIB(gconfLib);
+
+ GET_LIB_FUNCTION(gconf, gconf_client_get_default);
+@@ -151,7 +151,7 @@
+ GET_LIB_FUNCTION(gconf, gconf_client_get_bool);
+
+ // Attempt to open libgnome
+- gnomeLib = LoadVersionedLibrary("gnome-2", ".0");
++ gnomeLib = PR_LoadLibrary("libgnome-2.so");
+ ENSURE_LIB(gnomeLib);
+
+ GET_LIB_FUNCTION(gnome, gnome_url_show);
+@@ -160,7 +160,7 @@
+ GET_LIB_FUNCTION(gnome, gnome_program_get);
+
+ // Attempt to open libgnomevfs
+- vfsLib = LoadVersionedLibrary("gnomevfs-2", ".0");
++ vfsLib = PR_LoadLibrary("libgnomevfs-2.so");
+ ENSURE_LIB(vfsLib);
+
+ GET_LIB_FUNCTION(vfs, gnome_vfs_mime_type_from_name);
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-widget_public_nsGUIEvent.h /junk/wk/www/firefox/files/patch-widget_public_nsGUIEvent.h
--- /usr/HEAD/ports/www/firefox/files/patch-widget_public_nsGUIEvent.h Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-widget_public_nsGUIEvent.h Tue Dec 28 10:58:47 2004
@@ -0,0 +1,34 @@
+--- widget/public/nsGUIEvent.h.orig Wed Sep 8 00:57:48 2004
++++ widget/public/nsGUIEvent.h Tue Dec 28 08:59:02 2004
+@@ -22,6 +22,8 @@
+ * Contributor(s):
+ * Makoto Kato <m_kato at ga2.so-net.ne.jp>
+ * Dean Tessman <dean_tessman at hotmail.com>
++ * Andrew Wellington <proton at wiretapped.net>
++ * Graham Dennis <u3952328 at anu.edu.au>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+@@ -818,6 +820,22 @@
+ nsDragDropEventStatus_eDrop
+ };
+
++/**
++ * Event status for an extended mouse button event
++ * The event (called clickCount) is type PRUint32:
++ * hence this struct will be of the same size
++ */
++typedef struct {
++ PRUint16 realClickCount;
++ PRUint8 button;
++ PRUint8 event; // eg button went up / down
++} nsExtendedMouseEventStatus;
++
++enum {
++ /// different types of events
++ nsExtendedMouseEventStatus_up,
++ nsExtendedMouseEventStatus_down
++};
+
+ #define NS_IS_MOUSE_EVENT(evnt) \
+ (((evnt)->message == NS_MOUSE_LEFT_BUTTON_DOWN) || \
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-widget_src_gtk2_nsWindow.cpp /junk/wk/www/firefox/files/patch-widget_src_gtk2_nsWindow.cpp
--- /usr/HEAD/ports/www/firefox/files/patch-widget_src_gtk2_nsWindow.cpp Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-widget_src_gtk2_nsWindow.cpp Tue Dec 28 10:58:47 2004
@@ -0,0 +1,20 @@
+--- widget/src/gtk2/nsWindow.cpp.orig Fri Jun 18 05:02:07 2004
++++ widget/src/gtk2/nsWindow.cpp Tue Dec 28 08:59:02 2004
+@@ -1395,6 +1395,9 @@
+ return;
+
+ switch (aEvent->button) {
++ case 1:
++ eventType = NS_MOUSE_LEFT_BUTTON_DOWN;
++ break;
+ case 2:
+ eventType = NS_MOUSE_MIDDLE_BUTTON_DOWN;
+ break;
+@@ -1402,7 +1405,6 @@
+ eventType = NS_MOUSE_RIGHT_BUTTON_DOWN;
+ break;
+ default:
+- eventType = NS_MOUSE_LEFT_BUTTON_DOWN;
+ break;
+ }
+
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-xpcom_io_nsAppDirectoryServiceDefs.h /junk/wk/www/firefox/files/patch-xpcom_io_nsAppDirectoryServiceDefs.h
--- /usr/HEAD/ports/www/firefox/files/patch-xpcom_io_nsAppDirectoryServiceDefs.h Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-xpcom_io_nsAppDirectoryServiceDefs.h Tue Dec 28 11:01:30 2004
@@ -0,0 +1,13 @@
+--- xpcom/io/nsAppDirectoryServiceDefs.h.orig Wed May 19 20:57:50 2004
++++ xpcom/io/nsAppDirectoryServiceDefs.h Tue Dec 28 08:59:02 2004
+@@ -75,8 +75,10 @@
+ #define NS_APP_CHROME_DIR "AChrom"
+ #define NS_APP_PLUGINS_DIR "APlugns" // Deprecated - use NS_APP_PLUGINS_DIR_LIST
+ #define NS_APP_SEARCH_DIR "SrchPlugns"
++#define NS_USER_SEARCH_DIR "UsrSrchPlugns"
+
+ #define NS_APP_PLUGINS_DIR_LIST "APluginsDL"
++#define NS_APP_SEARCH_DIR_LIST "ASearchDL"
+
+ // --------------------------------------------------------------------------------------
+ // Files and directories which exist on a per-profile basis
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-xpcom_io_nsAppFileLocationProvider.cpp /junk/wk/www/firefox/files/patch-xpcom_io_nsAppFileLocationProvider.cpp
--- /usr/HEAD/ports/www/firefox/files/patch-xpcom_io_nsAppFileLocationProvider.cpp Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-xpcom_io_nsAppFileLocationProvider.cpp Tue Dec 28 11:01:30 2004
@@ -0,0 +1,33 @@
+--- xpcom/io/nsAppFileLocationProvider.cpp.orig Thu Jan 22 02:01:19 2004
++++ xpcom/io/nsAppFileLocationProvider.cpp Tue Dec 28 08:59:02 2004
+@@ -252,6 +252,12 @@
+ if (NS_SUCCEEDED(rv))
+ rv = localFile->AppendRelativeNativePath(SEARCH_DIR_NAME);
+ }
++ else if (nsCRT::strcmp(prop, NS_USER_SEARCH_DIR) == 0)
++ {
++ rv = GetProductDirectory(getter_AddRefs(localFile));
++ if (NS_SUCCEEDED(rv))
++ rv = localFile->AppendRelativeNativePath(SEARCH_DIR_NAME);
++ }
+ else if (nsCRT::strcmp(prop, NS_APP_INSTALL_CLEANUP_DIR) == 0)
+ {
+ // This is cloned so that embeddors will have a hook to override
+@@ -586,6 +592,17 @@
+ }
+ *_retval = new nsPathsDirectoryEnumerator(this, keys);
+ #endif
++ NS_IF_ADDREF(*_retval);
++ rv = *_retval ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
++ }
++ if (!nsCRT::strcmp(prop, NS_APP_SEARCH_DIR_LIST))
++ {
++ static const char* keys[] = { nsnull, NS_USER_SEARCH_DIR, NS_APP_SEARCH_DIR, nsnull };
++ if (!keys[0] && !(keys[0] = PR_GetEnv("MOZ_SEARCH_ENGINE_PATH"))) {
++ static const char nullstr = 0;
++ keys[0] = &nullstr;
++ }
++ *_retval = new nsPathsDirectoryEnumerator(this, keys);
+ NS_IF_ADDREF(*_retval);
+ rv = *_retval ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
+ }
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-xpfe_components_search_src_nsInternetSearchService.cpp /junk/wk/www/firefox/files/patch-xpfe_components_search_src_nsInternetSearchService.cpp
--- /usr/HEAD/ports/www/firefox/files/patch-xpfe_components_search_src_nsInternetSearchService.cpp Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-xpfe_components_search_src_nsInternetSearchService.cpp Tue Dec 28 11:09:11 2004
@@ -0,0 +1,55 @@
+--- xpfe/components/search/src/nsInternetSearchService.cpp.orig Thu Oct 14 08:22:12 2004
++++ xpfe/components/search/src/nsInternetSearchService.cpp Tue Dec 28 08:59:02 2004
+@@ -997,8 +997,25 @@
+
+ // get available search engines
+ nsCOMPtr<nsIFile> nativeDir;
+- if (NS_SUCCEEDED(rv = GetSearchFolder(getter_AddRefs(nativeDir))))
+- {
++
++ nsCOMPtr<nsIProperties> dirService(do_GetService("@mozilla.org/file/directory_service;1", &rv));
++ if (NS_FAILED(rv)) return rv;
++
++ nsCOMPtr<nsISimpleEnumerator> dirList;
++ rv = dirService->Get(NS_APP_SEARCH_DIR_LIST, NS_GET_IID(nsISimpleEnumerator), getter_AddRefs(dirList));
++ if (NS_FAILED(rv)) return rv;
++
++ PRBool hasMore;
++ while (NS_SUCCEEDED(dirList->HasMoreElements(&hasMore)) && hasMore)
++ {
++ nsCOMPtr<nsISupports> supports;
++ rv = dirList->GetNext(getter_AddRefs(supports));
++ if (NS_FAILED(rv))
++ continue;
++ nativeDir = do_QueryInterface(supports, &rv);
++ if (NS_FAILED(rv))
++ continue;
++
+ rv = GetSearchEngineList(nativeDir, PR_FALSE, PR_FALSE);
+
+ // read in category list
+@@ -2560,6 +2577,15 @@
+ nsCOMPtr<nsIFile> outFile;
+ if (NS_FAILED(rv = GetSearchFolder(getter_AddRefs(outFile)))) return(rv);
+
++ PRBool exists;
++ rv = outFile->Exists(&exists);
++ if (NS_FAILED(rv)) return(rv);
++ if (!exists)
++ {
++ rv = outFile->Create(nsIFile::DIRECTORY_TYPE, 0755);
++ if (NS_FAILED(rv)) return(rv);
++ }
++
+ const PRUnichar *dataBuf = nsnull;
+ if (NS_FAILED(rv = context->GetBufferConst(&dataBuf))) return(rv);
+
+@@ -4100,7 +4126,7 @@
+ *searchDir = nsnull;
+
+ nsCOMPtr<nsIFile> aDir;
+- nsresult rv = NS_GetSpecialDirectory(NS_APP_SEARCH_DIR, getter_AddRefs(aDir));
++ nsresult rv = NS_GetSpecialDirectory(NS_USER_SEARCH_DIR, getter_AddRefs(aDir));
+ if (NS_FAILED(rv)) return rv;
+
+ *searchDir = aDir;
diff -ruN --exclude=CVS /usr/HEAD/ports/www/firefox/files/patch-xpinstall_packager_unix_browser.jst /junk/wk/www/firefox/files/patch-xpinstall_packager_unix_browser.jst
--- /usr/HEAD/ports/www/firefox/files/patch-xpinstall_packager_unix_browser.jst Thu Jan 1 01:00:00 1970
+++ /junk/wk/www/firefox/files/patch-xpinstall_packager_unix_browser.jst Tue Dec 28 11:09:11 2004
@@ -0,0 +1,38 @@
+--- xpinstall/packager/unix/browser.jst.orig Tue Feb 24 04:22:34 2004
++++ xpinstall/packager/unix/browser.jst Tue Dec 28 08:59:02 2004
+@@ -77,35 +77,18 @@
+ logComment("dirCreate() returned: " + ignoreErr);
+
+ var cf = getFolder("Chrome");
+- registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"toolkit.jar"),"content/global-platform/");
+- registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/communicator-platform/");
+- registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/navigator-platform/");
+-
+- registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"toolkit.jar"),"content/global-region/");
+- registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/communicator-region/");
+- registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/editor-region/");
+- registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/navigator-region/");
+-
+ registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"toolkit.jar"),"content/global/");
+ registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/autoconfig/");
+ registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/cookie/");
+ registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/wallet/");
+ registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"content-packs.jar"),"content/content-packs/");
+ registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/communicator/");
+- registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/editor/");
+ registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/navigator/");
+ registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/necko/");
+ registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/mozldap/");
+ registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/communicator/");
+- registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/editor/");
+ registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/global/");
+- registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/messenger/");
+ registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/navigator/");
+- registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/communicator/");
+- registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/editor/");
+- registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/global/");
+- registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/messenger/");
+- registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/navigator/");
+ registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"help.jar"),"content/help/");
+ registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/xbl-marquee/");
+ registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/p3p/");
--- firefox-1.0_6,1.patch ends here ---
More information about the freebsd-gnome
mailing list