--- thunderbird-3.1.8+build1+nobinonly.orig/comm-1.9.2-3.1.8+build1-source.tar.bz2.cdbs-config_list +++ thunderbird-3.1.8+build1+nobinonly/comm-1.9.2-3.1.8+build1-source.tar.bz2.cdbs-config_list @@ -0,0 +1,105 @@ +mozilla/calendar/libical/config.h +mozilla/config/config.mk +mozilla/suite/themes/modern/global/config.css +mozilla/directory/sdks/c-sdk/config/config.mk +mozilla/directory/sdks/c-sdk/config/autoconf/config.guess +mozilla/directory/sdks/c-sdk/config/autoconf/config.sub +mozilla/mozilla/config/config.mk +mozilla/mozilla/extensions/irc/xul/content/ceip/config.xul +mozilla/mozilla/extensions/irc/xul/content/ceip/config.js +mozilla/mozilla/extensions/irc/xul/content/config.xul +mozilla/mozilla/extensions/irc/xul/content/config.css +mozilla/mozilla/extensions/irc/xul/content/config.js +mozilla/mozilla/extensions/irc/locales/en-US/chrome/config.dtd +mozilla/mozilla/modules/freetype2/builds/unix/config.guess +mozilla/mozilla/modules/freetype2/builds/unix/config.sub +mozilla/mozilla/nsprpub/config/config.mk +mozilla/mozilla/nsprpub/build/autoconf/config.guess +mozilla/mozilla/nsprpub/build/autoconf/config.sub +mozilla/mozilla/toolkit/crashreporter/google-breakpad/autotools/config.guess +mozilla/mozilla/toolkit/crashreporter/google-breakpad/autotools/config.sub +mozilla/mozilla/toolkit/crashreporter/google-breakpad/src/config.h.in +mozilla/mozilla/toolkit/themes/winstripe/global/config.css +mozilla/mozilla/toolkit/themes/pinstripe/global/config.css +mozilla/mozilla/toolkit/components/viewconfig/content/config.xul +mozilla/mozilla/toolkit/components/viewconfig/content/config.js +mozilla/mozilla/toolkit/locales/en-US/chrome/global/config.dtd +mozilla/mozilla/toolkit/locales/en-US/chrome/global/config.properties +mozilla/mozilla/tools/leaky/config.h +mozilla/mozilla/tools/jprof/stub/config.h +mozilla/mozilla/ipc/chromium/src/third_party/libevent/config.h.in +mozilla/mozilla/ipc/chromium/src/third_party/libevent/config.guess +mozilla/mozilla/ipc/chromium/src/third_party/libevent/linux/config.h +mozilla/mozilla/ipc/chromium/src/third_party/libevent/mac/config.h +mozilla/mozilla/ipc/chromium/src/third_party/libevent/config.sub +mozilla/mozilla/security/nss/tests/pkcs11/netscape/trivial/config.h.in +mozilla/mozilla/security/nss/tests/pkcs11/netscape/suites/config.mk +mozilla/mozilla/security/nss/tests/pkcs11/netscape/suites/security/pkcs11/config.mk +mozilla/mozilla/security/nss/tests/pkcs11/netscape/suites/security/config.mk +mozilla/mozilla/security/nss/tests/pkcs11/netscape/suites/security/ssl/config.mk +mozilla/mozilla/security/nss/lib/sqlite/config.mk +mozilla/mozilla/security/nss/lib/jar/config.mk +mozilla/mozilla/security/nss/lib/pki/config.mk +mozilla/mozilla/security/nss/lib/pkcs7/config.mk +mozilla/mozilla/security/nss/lib/nss/config.mk +mozilla/mozilla/security/nss/lib/pk11wrap/config.mk +mozilla/mozilla/security/nss/lib/util/config.mk +mozilla/mozilla/security/nss/lib/pkcs12/config.mk +mozilla/mozilla/security/nss/lib/freebl/config.mk +mozilla/mozilla/security/nss/lib/zlib/config.mk +mozilla/mozilla/security/nss/lib/crmf/config.mk +mozilla/mozilla/security/nss/lib/cryptohi/config.mk +mozilla/mozilla/security/nss/lib/ckfw/capi/config.mk +mozilla/mozilla/security/nss/lib/ckfw/builtins/config.mk +mozilla/mozilla/security/nss/lib/ckfw/dbm/config.mk +mozilla/mozilla/security/nss/lib/ckfw/config.mk +mozilla/mozilla/security/nss/lib/ckfw/nssmkey/config.mk +mozilla/mozilla/security/nss/lib/certhigh/config.mk +mozilla/mozilla/security/nss/lib/dev/config.mk +mozilla/mozilla/security/nss/lib/base/config.mk +mozilla/mozilla/security/nss/lib/softoken/config.mk +mozilla/mozilla/security/nss/lib/softoken/legacydb/config.mk +mozilla/mozilla/security/nss/lib/ssl/config.mk +mozilla/mozilla/security/nss/lib/smime/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix_pl_nss/pki/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix_pl_nss/module/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix_pl_nss/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix_pl_nss/system/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/checker/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/certsel/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/results/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/util/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/store/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/crlsel/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/params/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/top/config.mk +mozilla/mozilla/security/nss/lib/libpkix/include/config.mk +mozilla/mozilla/security/nss/lib/libpkix/config.mk +mozilla/mozilla/security/nss/lib/sysinit/config.mk +mozilla/mozilla/security/nss/lib/certdb/config.mk +mozilla/mozilla/security/nss/cmd/crmf-cgi/config.mk +mozilla/mozilla/security/nss/cmd/crmftest/config.mk +mozilla/mozilla/security/nss/cmd/lib/config.mk +mozilla/mozilla/security/nss/cmd/libpkix/testutil/config.mk +mozilla/mozilla/security/nss/cmd/libpkix/config.mk +mozilla/mozilla/security/dbm/config/config.mk +mozilla/mozilla/security/dbm/src/config.mk +mozilla/mozilla/security/coreconf/config.mk +mozilla/mozilla/media/liboggplay/src/liboggplay/config.h +mozilla/mozilla/media/libfishsound/src/libfishsound/config.h +mozilla/mozilla/media/libfishsound/include/fishsound/config.h +mozilla/mozilla/media/liboggz/include/oggz/config.h +mozilla/mozilla/media/libtheora/include/theora/config.h +mozilla/mozilla/media/libtheora/lib/config.h +mozilla/mozilla/js/src/tracevis/config.py +mozilla/mozilla/js/src/config/config.mk +mozilla/mozilla/js/src/tests/config.sh +mozilla/mozilla/js/src/tests/config.mk +mozilla/mozilla/js/src/config.mk +mozilla/mozilla/js/src/build/autoconf/config.guess +mozilla/mozilla/js/src/build/autoconf/config.sub +mozilla/mozilla/js/ctypes/libffi/config.guess +mozilla/mozilla/js/ctypes/libffi/config.sub +mozilla/mozilla/build/autoconf/config.guess +mozilla/mozilla/build/autoconf/config.sub --- thunderbird-3.1.8+build1+nobinonly.orig/debian/thunderbird.manpages +++ thunderbird-3.1.8+build1+nobinonly/debian/thunderbird.manpages @@ -0,0 +1 @@ +debian/thunderbird.1 --- thunderbird-3.1.8+build1+nobinonly.orig/debian/thunderbird.js +++ thunderbird-3.1.8+build1+nobinonly/debian/thunderbird.js @@ -0,0 +1,14 @@ +// This is the Debian specific preferences file for Mozilla Firefox +// You can make any change in here, it is the purpose of this file. +// You can, with this file and all files present in the +// /etc/thunderbird/pref directory, override any preference that is +// present in /usr/lib/thunderbird/defaults/pref directory. +// While your changes will be kept on upgrade if you modify files in +// /etc/thunderbird/pref, please note that they won't be kept if you +// do them in /usr/lib/thunderbird/defaults/pref. + +// Use LANG environment variable to choose locale +pref("intl.locale.matchOS", true); + +// Disable default mail checking (gnome). +pref("mail.shell.checkDefaultMail", false); --- thunderbird-3.1.8+build1+nobinonly.orig/debian/rules +++ thunderbird-3.1.8+build1+nobinonly/debian/rules @@ -0,0 +1,294 @@ +#!/usr/bin/make -f + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) + +DEB_MOZ_NAME=thunderbird +DEB_MOZ_VERSION=3.1 +DEB_MOZ_APPLICATION=$(DEB_MOZ_NAME) +MOZ_APPLICATION=mail +XUL_VERSION=1.9.2 + +DEB_ENABLE_BREAKPAD ?= 1 + +DEBIAN_VERSION := $(shell dpkg-parsechangelog | sed -n 's/^Version: *\(.*\)$$/\1/ p') +DEBIAN_UPSTREAM_VERSION := $(shell echo $(DEBIAN_VERSION) | sed 's/^\(.*\)-[^-]*$$/\1/') +DEBIAN_REV_CODE := $(shell echo $(DEBIAN_VERSION) | sed 's/^.*-\([0-9]*\)[^-]*$$/0\1/ ; s/^.*\(..\)$$/\1/') + +ifeq ($(XUL_VERSION),1.9.2) + TB_VERSION_FILE := version-192.txt +else + TB_VERSION_FILE := version.txt +endif + +DEBIAN_TB_DIR = /usr/lib/$(DEB_MOZ_NAME)-$(shell tail -1 mozilla/$(MOZ_APPLICATION)/config/$(TB_VERSION_FILE)) +DEBIAN_TB_DEV_DIR = /usr/lib/$(DEB_MOZ_NAME)-devel-$(shell tail -1 mozilla/$(MOZ_APPLICATION)/config/$(TB_VERSION_FILE)) +DEBIAN_XUL_DEV := $(wildcard /usr/lib/xulrunner-devel-1.9*) + +MOZCLIENT_PROJECTNAME := $(DEB_MOZ_APPLICATION) +MOZCLIENT_PROJECTDIR := $(CURDIR)/debian/mozclient + +DEB_SRCDIR := mozilla +# DEB_BUILDDIR := objdir-tb + +GNOME_SUPPORT_FILES = libmozgnome.so libnkgnomevfs.so + +DISTRIB := $(shell lsb_release -i -s) +ifneq (,$(filter $(DISTRIB),Ubuntu)) + DISTRIB_VERSION_MAJOR := $(shell lsb_release -s -r | cut -d '.' -f 1) + DISTRIB_VERSION_MINOR := $(shell lsb_release -s -r | cut -d '.' -f 2) +endif + +EXTRA_SYSTEM_CONFIGURE_FLAGS = $(NULL) + +USE_SYSTEM_XUL := 0 + +ifeq (1,$(USE_SYSTEM_XUL)) + EXTRA_SYSTEM_CONFIGURE_FLAGS += --with-libxul-sdk=$(DEBIAN_XUL_DEV) +endif + +USE_SYSTEM_CAIRO := $(shell pkg-config --exists 'cairo >= 1.8.8'; a=$$?; if test $$a != 1; then echo 1; fi) + +# for old cairo versions we cannot use system cairo +ifeq (1,$(USE_SYSTEM_CAIRO)) + EXTRA_SYSTEM_CONFIGURE_FLAGS += --enable-system-cairo +else + EXTRA_SYSTEM_CONFIGURE_FLAGS += --disable-system-cairo +endif + +# gutsy doesn't have the right system-nss/nspr +USE_SYSTEM_NSPR := $(shell pkg-config --exists 'nspr >= 4.8.6'; a=$$?; if test $$a != 1; then echo 1; fi) +ifeq (1,$(USE_SYSTEM_NSPR)) + EXTRA_SYSTEM_CONFIGURE_FLAGS += --with-system-nspr +endif + +USE_SYSTEM_NSS := $(shell pkg-config --exists 'nss >= 3.12.8'; a=$$?; if test $$a != 1; then echo 1; fi) +ifeq (1,$(USE_SYSTEM_NSS)) + EXTRA_SYSTEM_CONFIGURE_FLAGS += --with-system-nss +endif + +USE_SYSTEM_HUNSPELL := $(shell pkg-config --exists 'hunspell >= 1.2'; a=$$?; if test $$a != 1; then echo 1; fi) +ifeq (1,$(USE_SYSTEM_HUNSPELL)) + EXTRA_SYSTEM_CONFIGURE_FLAGS += --enable-system-hunspell +else + EXTRA_SYSTEM_CONFIGURE_FLAGS += --disable-system-hunspell +endif + +DEB_AUTO_UPDATE_AUTOCONF=2.13 + +ifneq (,$(wildcard *.tar.bz2)$(DEBIAN_MOZCLIENT_EMBEDDED)) + DEB_TAR_SRCDIR := mozilla + MOZCLIENT_EMBEDDED = 1 + DEBIAN_TB_DIR = /usr/lib/$(DEB_MOZ_NAME)-$(shell tail -1 build-tree/mozilla/$(MOZ_APPLICATION)/config/$(TB_VERSION_FILE)) + DEBIAN_TB_DEV_DIR = /usr/lib/$(DEB_MOZ_NAME)-devel-$(shell tail -1 build-tree/mozilla/$(MOZ_APPLICATION)/config/$(TB_VERSION_FILE)) + include /usr/share/cdbs/1/rules/tarball.mk +endif +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/rules/patchsys-quilt.mk +include /usr/share/cdbs/1/class/autotools.mk +include $(CURDIR)/debian/mozclient/$(DEB_MOZ_APPLICATION).mk +include $(CURDIR)/debian/mozclient/compare.mk + +DEB_AUTO_UPDATE_DEBIAN_CONTROL=0 + +DEB_MOZ_EXTENSIONS=default,globalmenu + +CFLAGS = -g +CXXFLAGS = -g + +PROCESSORS := $(shell grep -ic ^processor /proc/cpuinfo) +ifeq (0,$(PROCESSORS)) +PROCESSORS := 1 +endif +ifneq (1,$(PROCESSORS)) +DEB_MAKE_EXTRA_ARGS += -j$(PROCESSORS) +endif + +DEB_MAKE_ENVVARS += INSTALL_SDK=1 + +# DEB_CONFIGURE_SCRIPT_ENV = \ +# MOZ_OBJDIR=@TOPSRCDIR@/$(DEB_BUILDDIR) \ +# $(NULL) + +ifneq (,$(findstring ~hg,$(DEBIAN_VERSION))) + # codename branding for dailies + BRANDING = --with-branding=mail/branding/nightly +else + # official branding for releases + BRANDING = --enable-official-branding +endif + +# enable the crash reporter only on i386, amd64 and armel +ifeq (,$(findstring i386,$(DEB_BUILD_ARCH))) +ifeq (,$(findstring amd64,$(DEB_BUILD_ARCH))) +ifeq (,$(findstring armel,$(DEB_BUILD_ARCH))) + DEB_ENABLE_IPC = 0 + DEB_ENABLE_BREAKPAD = 0 +endif +endif +endif + +ifeq (1,$(DEB_ENABLE_BREAKPAD)) + export MOZILLA_OFFICIAL = 1 + EXTRA_SYSTEM_CONFIGURE_FLAGS += --enable-crashreporter +else + EXTRA_SYSTEM_CONFIGURE_FLAGS += --disable-crashreporter +endif + +DEB_CONFIGURE_USER_FLAGS= \ + $(EXTRA_SYSTEM_CONFIGURE_FLAGS) \ + --enable-application=$(MOZ_APPLICATION) \ + --enable-extensions=$(DEB_MOZ_EXTENSIONS) \ + --with-default-mozilla-five-home=$(DEBIAN_TB_DIR) \ + --enable-startup-notification \ + --with-user-appdir=.mozilla \ + --with-system-jpeg=/usr \ + --with-system-zlib=/usr \ + --disable-javaxpcom \ + --disable-elf-dynstr-gc \ + --disable-installer \ + --disable-strip \ + --disable-strip-libs \ + --disable-install-strip \ + --disable-tests \ + --disable-mochitest \ + --disable-updater \ + --enable-optimize \ + --enable-static \ + --enable-static-mail \ + --with-distribution-id=com.ubuntu \ + $(BRANDING) \ + $(NULL) + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + DEB_CONFIGURE_USER_FLAGS += \ + --disable-optimize \ + $(NULL) +endif + +# disable jit on sparc until bmo 502369 is fixable +ifneq (,$(findstring sparc,$(DEB_BUILD_ARCH))) + DEB_CONFIGURE_USER_FLAGS += --disable-jit +endif + +DEBIAN_EXECUTABLES = \ + thunderbird.sh \ + $(NULL) + +subst_files = \ + debian/$(DEB_MOZ_APPLICATION).postinst \ + debian/$(DEB_MOZ_APPLICATION).prerm \ + debian/thunderbird.sh \ + debian/apport/$(DEB_MOZ_APPLICATION) \ + $(NULL) + +%: %.in + sed -e 's,@LIBDIR@,$(DEBIAN_TB_DIR),g' < $< > $@ + +debian/apport/$(DEB_MOZ_APPLICATION).in: + cp $(CURDIR)/debian/apport/blacklist $(CURDIR)/debian/apport/$(DEB_MOZ_APPLICATION).in + +pre-build:: $(subst_files) debian/migrator/tb-beta-profile-migration-dialog + set -e; /usr/bin/docbook-to-man $(CURDIR)/debian/thunderbird.sgml > $(CURDIR)/debian/thunderbird.1 ; \ + for i in $(DEBIAN_EXECUTABLES); do \ + chmod a+x debian/$$i; \ + done + mkdir -p build-tree/mozilla/mozilla/extensions/globalmenu + (cd debian/globalmenu && tar -cvhf - .) | (cd build-tree/mozilla/mozilla/extensions/globalmenu && tar -xf -) + +debian/thunderbird.sh: debian/thunderbird.sh.in + sed -e 's,@LIBDIR@,$(DEBIAN_TB_DIR),g' \ + -e 's,@META_NAME@,$(DEB_MOZ_NAME),g' \ + -e 's,@APPVER@,$(DEBIAN_APP_NAME_VER),g' < $< > $@ + +debian/migrator/tb-beta-profile-migration-dialog: debian/migrator/main.c + $(CC) $(CFLAGS) -o $@ $< $(shell pkg-config --cflags --libs gtk+-2.0) + +post-patches:: debian/stamp-autotools-files-moz +debian/stamp-autotools-files-moz: + # Number of processors: $(PROCESSORS) [$(shell grep -E '^(model name|Processor)' /proc/cpuinfo | head -1)] + if [ "Z$(DEB_AUTO_UPDATE_AUTOCONF)" != Z ] || [ ! -e $(DEB_SRCDIR)/mozilla/configure ]; \ + then cd $(DEB_SRCDIR)/mozilla && `which autoconf$(DEB_AUTO_UPDATE_AUTOCONF) || which autoconf`; fi + if [ "Z$(DEB_AUTO_UPDATE_AUTOCONF)" != Z ] || [ ! -e $(DEB_SRCDIR)/mozilla/js/src/configure ]; \ + then cd $(DEB_SRCDIR)/mozilla/js/src && `which autoconf$(DEB_AUTO_UPDATE_AUTOCONF) || which autoconf`; fi + touch $@ + +install/$(DEB_MOZ_APPLICATION):: + install -d -m 755 debian/tmp/usr/share/pixmaps + install -m 644 $(DEB_SRCDIR)/other-licenses/branding/thunderbird/content/icon64.png debian/tmp/usr/share/pixmaps/$(DEB_MOZ_APPLICATION).png + +binary-install/$(DEB_MOZ_APPLICATION):: + touch debian/$(DEB_MOZ_NAME)$(DEBIAN_TB_DIR)/.autoreg + touch debian/$(DEB_MOZ_NAME)$(DEBIAN_TB_DIR)/update.locale + dh_install debian/tmp/usr/share/pixmaps/$(DEB_MOZ_APPLICATION).png usr/share/pixmaps + dh_install debian/thunderbird.sh $(DEBIAN_TB_DIR) + dh_link etc/$(DEB_MOZ_NAME)/pref $(DEBIAN_TB_DIR)/defaults/syspref + dh_link $(DEBIAN_TB_DIR)/thunderbird.sh usr/bin/$(DEB_MOZ_APPLICATION) + if [ '$(DISTRIB_VERSION_MAJOR)$(DISTRIB_VERSION_MINOR)' -ge '1010' ]; then \ + dh_link usr/share/hunspell $(DEBIAN_TB_DIR)/dictionaries ; \ + else \ + dh_link usr/share/myspell/dicts $(DEBIAN_TB_DIR)/dictionaries ; \ + fi + dh_install debian/migrator/tb-beta-profile-migration-dialog $(DEBIAN_TB_DIR) + dh_link -p$(DEB_MOZ_APPLICATION) usr/lib/thunderbird-addons/extensions $(DEBIAN_TB_DIR)/extensions +ifeq (1,$(DEB_ENABLE_BREAKPAD)) + dh_install -p$(DEB_MOZ_APPLICATION) debian/tmp/usr/lib/thunderbird-*/crashreporter $(DEBIAN_TB_DIR)/ + dh_install -p$(DEB_MOZ_APPLICATION) debian/apport/$(DEB_MOZ_APPLICATION) etc/apport/blacklist.d/ +endif + +binary-install/$(DEB_MOZ_APPLICATION)-dev:: + dh_installdirs -p$(DEB_MOZ_APPLICATION)-dev $(DEBIAN_TB_DIR) + # sdk stuff +ifdef USE_SYSTEM_NSPR + dh_link -p$(DEB_MOZ_APPLICATION)-dev /usr/bin/nspr-config $(DEBIAN_TB_DIR)/nspr-config + dh_link -p$(DEB_MOZ_APPLICATION)-dev /usr/include/nspr /usr/include/$(DEB_MOZ_NAME)-$(shell tail -1 build-tree/mozilla/$(MOZ_APPLICATION)/config/$(TB_VERSION_FILE))/nspr +endif +ifdef USE_SYSTEM_NSS + dh_link -p$(DEB_MOZ_APPLICATION)-dev /usr/bin/nss-config $(DEBIAN_TB_DIR)/nss-config + dh_link -p$(DEB_MOZ_APPLICATION)-dev /usr/include/nss /usr/include/$(DEB_MOZ_NAME)-$(shell tail -1 build-tree/mozilla/$(MOZ_APPLICATION)/config/$(TB_VERSION_FILE))/nss +endif + +binary-install/$(DEB_MOZ_APPLICATION)-globalmenu:: + mkdir -p debian/thunderbird-globalmenu/usr/lib/thunderbird-addons/extensions/globalmenu@ubuntu.com + unzip -o -d debian/thunderbird-globalmenu/usr/lib/thunderbird-addons/extensions/globalmenu@ubuntu.com/ build-tree/mozilla/mozilla/dist/xpi-stage/globalmenu.xpi + find debian/thunderbird-globalmenu/usr/lib/thunderbird-addons/extensions/globalmenu@ubuntu.com/ -type f -executable | xargs chmod -x + +debian/stamp-buildsymbols: debian/stamp-makefile-build +ifeq (1, $(DEB_ENABLE_BREAKPAD)) + # create build symbols + cd build-tree/mozilla; \ + $(MAKE) buildsymbols MOZ_SYMBOLS_EXTRA_BUILDID=$(shell date -d "`dpkg-parsechangelog | grep Date: | sed -e 's/^Date: //'`" +%y%m%d%H%M%S)-$(DEB_HOST_GNU_CPU) +endif + touch $@ + + +binary-install/$(DEB_MOZ_APPLICATION)-mozsymbols:: +ifeq (1, $(DEB_ENABLE_BREAKPAD)) + dh_install -p$(DEB_MOZ_APPLICATION)-mozsymbols build-tree/mozilla/mozilla/dist/*symbols.zip $(DEBIAN_TB_DIR)/ +endif + +common-binary-arch:: debian/stamp-buildsymbols + +binary-post-install/$(DEB_MOZ_APPLICATION):: compare + +binary-predeb/$(DEB_MOZ_APPLICATION):: + $(foreach file,$(GNOME_SUPPORT_FILES), \ + cp -vf debian/tmp/usr/lib/thunderbird-*/components/$(file) debian/$(DEB_MOZ_APPLICATION)/usr/lib/thunderbird-*/components/;) true + +binary-predeb/$(DEB_MOZ_APPLICATION)-gnome-support:: + $(foreach file,$(GNOME_SUPPORT_FILES), \ + rm -vf debian/$(DEB_MOZ_APPLICATION)-gnome-support/usr/lib/thunderbird-*/components/$(file);) true + +clean:: + rm -f debian/stamp-autotools-files-moz + rm -f debian/migrator/tb-beta-profile-migration-dialog + rm -f debian/migrator/*~ + rm -f debian/$(DEB_MOZ_APPLICATION).postinst + rm -f debian/$(DEB_MOZ_APPLICATION).prerm + rm -f debian/apport/$(DEB_MOZ_APPLICATION) + rm -f debian/apport/$(DEB_MOZ_APPLICATION).in + rm -f debian/thunderbird.sh + rm -f debian/thunderbird.1 --- thunderbird-3.1.8+build1+nobinonly.orig/debian/thunderbird.prerm.in +++ thunderbird-3.1.8+build1+nobinonly/debian/thunderbird.prerm.in @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +LIBDIR=@LIBDIR@ + +if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ] || [ "$1" = upgrade ]; then + rm -f $LIBDIR/.autoreg +fi + +#DEBHELPER# --- thunderbird-3.1.8+build1+nobinonly.orig/debian/copyright +++ thunderbird-3.1.8+build1+nobinonly/debian/copyright @@ -0,0 +1,647 @@ +This package was debianized by Fabien Tassin on 2008-02-25 + +The package was downloaded from http://ftp.mozilla.org/pub/mozilla.org/thunderbird/ + +EDIT: downloaded from CVS (until 3.0 is released) using the following commands: + debian/rules get-orig-source (you need to install mozilla-devscripts >= 0.05) + +The source tarball is an aggregate of several different works in which the +main one, developed by the Mozilla Project, is thunderbird. + +The contents of the debian directory are licensed like the bulk of +thunderbird, tri-licensed under the GPL/LGPL/MPL. + +Other works include gzip, bzip2, sqlite, libjpeg, libpng, cairo, and others. +Please see the sections following the copyright statements for thunderbird for +these. + +If this file is incomplete, which I'm pretty sure is the case, because it's +difficult not to forget anything in this huge amount of data, please file +a bug or contact me. + +=== thunderbird + +Overall, the thunderbird project is licensed under the terms of the Mozilla +Public License version 1.1 or, at your option, under the terms of the GNU +General Public License version 2 or subsequent, or the terms of the GNU +Lesser General Public License version 2.1 or subsequent. + +On Debian systems, the complete text of the GNU General Public +License can be found in the file `/usr/share/common-licenses/GPL' ; +the complete text of the GNU Lesser General Public License can be +found in the file `/usr/share/common-licenses/LGPL'. + +The complete text of the Mozilla Public License can be found in the MPL file +in the same directory as this file. + +Some of the files are also licensed (single, dual or tri) under the terms of +the Netscape Public License (NPL) which can be found as amendments to the +MPL at the end of the file. Please refer to http://www.mozilla.org/MPL/relicensing-faq.html + +While the Mozilla Project is undergoing a global relicensing so that the +aim is to have a full tree with these tri-license terms, there are at the +moment quite some exceptions as following: + +(Note that I sometimes assumed files not explicitely licensed to be licensed +under the same terms as the files around them and that a lot of the +information has been extracted automatically, thus maybe leaving some doubt. +Again, if you find "bugs", please contact me by email or via the BTS.) + +The following files are not tri-licenced MPL/GPL/LGPL: + +- GPL only: + dom/tests/mochitest/ajax/jquery/dist/jquery.js + dom/tests/mochitest/ajax/jquery/src/jquery/jquery.js + +- MPL and GPL: + embedding/browser/activex/src/install/README.txt + +- MPL and LGPL: + gfx/cairo/cairo/* + +- GPL and LGP: + extensions/pref/system-pref/src/gconf/nsSystemPrefService.cpp + extensions/pref/system-pref/src/gconf/nsSystemPrefService.h + extensions/pref/system-pref/src/nsSystemPref.cpp + extensions/pref/system-pref/src/nsSystemPref.h + extensions/pref/system-pref/src/nsSystemPrefFactory.cpp + extensions/pref/system-pref/src/nsSystemPrefLog.h + netwerk/base/public/nsIIOService2.idl + netwerk/base/public/nsINetworkLinkService.idl + netwerk/streamconv/converters/mozTXTToHTMLConv.cpp + netwerk/streamconv/converters/mozTXTToHTMLConv.h + netwerk/streamconv/public/mozITXTToHTMLConv.idl + toolkit/system/dbus/nsDBusModule.cpp + toolkit/system/dbus/nsDBusService.cpp + toolkit/system/dbus/nsDBusService.h + toolkit/system/dbus/nsNetworkManagerListener.cpp + toolkit/system/dbus/nsNetworkManagerListener.h + +- NPL only (thus MPL): (EDIT: to investigate) + intl/uconv/ucvibm/864i.uf + intl/uconv/ucvibm/cp850.uf + intl/uconv/ucvibm/cp852.uf + intl/uconv/ucvibm/cp855.uf + intl/uconv/ucvibm/cp857.uf + intl/uconv/ucvibm/cp862.uf + intl/uconv/ucvibm/cp864.uf + intl/uconv/ucvmath/mathematica1.uf + intl/uconv/ucvmath/mathematica2.uf + intl/uconv/ucvmath/mathematica3.uf + intl/uconv/ucvmath/mathematica4.uf + intl/uconv/ucvmath/mathematica5.uf + intl/uconv/ucvmath/mtextra.uf + intl/uconv/ucvmath/texcmex-t1.uf + intl/uconv/ucvmath/texcmex-ttf.uf + intl/uconv/ucvmath/texcmmi-t1.uf + intl/uconv/ucvmath/texcmmi-ttf.uf + intl/uconv/ucvmath/texcmr-ttf.uf + intl/uconv/ucvmath/texcmsy-t1.uf + +- Public Domain: + aclocal.m4 + build/autoconf/freetype2.m4 + build/autoconf/gtk.m4 + build/autoconf/nspr.m4 + db/mork/src/morkDeque.cpp + db/mork/src/morkDeque.h + +The file db/mork/src/morkQuickSort.cpp is licensed under the following terms: + + Copyright (c) 1992, 1993 + The Regents of the University of California. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +The following files come from X11R5, without any clear licensing terms: + + build/autoconf/install-sh + directory/c-sdk/config/autoconf/install-sh + nsprpub/build/autoconf/install-sh + +The embedding/qa/mozembed/public/nsIQABrowserUIGlue.idl file and the files +under the embedding/tests directory are licensed under the following terms: + + Copyright (c) 2002 Netscape Communications Corporation and + other contributors + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this Mozilla sample software and associated documentation files + (the "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +=== sqlite + +The db/sqlite3 directory contains a copy of sqlite with the following +licensing terms: + + The author disclaims copyright to this source code. In place of + a legal notice, here is a blessing: + + May you do good and not evil. + May you find forgiveness for yourself and forgive others. + May you share freely, never taking more than you give. + +=== dbm + +The dbm directory, except the files listed under the thunderbird section, is +licensed under the following terms: + + Copyright (c) 1991, 1993, 1994 + The Regents of the University of California. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. + 4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +=== myspell + +The extensions/spellcheck/myspell directory is licensed under the following +terms: + + Copyright 2002 Kevin B. Hendricks, Stratford, Ontario, Canada + And Contributors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. All modifications to the source code must be clearly marked as + such. Binary redistributions based on modified source code + must be clearly marked as modified versions in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY KEVIN B. HENDRICKS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + KEVIN B. HENDRICKS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +=== boehm + +The gc/boehm directory, except the files listed under the thunderbird section, +is licensed under the following terms: + + Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers + Copyright (c) 1991-1996 by Xerox Corporation. All rights reserved. + Copyright (c) 1996-1998 by Silicon Graphics. All rights reserved. + + THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED + OR IMPLIED. ANY USE IS AT YOUR OWN RISK. + + Permission is hereby granted to use or copy this program + for any purpose, provided the above notices are retained on all copies. + Permission to modify the code and to distribute modified code is granted, + provided the above notices are retained, and a notice that the code was + modified is included with the above copyright notice. + +=== cairo + +The gfx/cairo/cairo directory is licensed under the following terms: + + Copyright (c) 2003 University of Southern California + Copyright (c) 1999 Tom Tromey + Copyright (c) 2002, 2003 University of Southern California + Copyright (c) 2004 Calum Robinson + Copyright (c) 2004 David Reveman + Copyright (c) 2000, 2002, 2004 Keith Packard + Copyright (c) 2004, 2005 Red Hat, Inc + + Cairo is free software and is available to be redistributed and/or + modified under the terms of either the GNU Lesser General Public + License (LGPL) version 2.1 or the Mozilla Public License (MPL) version + 1.1. + +=== libpixman + +The gfx/cairo/libpixman directory is licensed under the following terms: +(from gfx/cairo/libpixman/COPYING) + + libpixregion + + Copyright 1987, 1998 The Open Group + + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation. + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of The Open Group shall not be + used in advertising or otherwise to promote the sale, use or other dealings + in this Software without prior written authorization from The Open Group. + + + Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. + + All Rights Reserved + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose and without fee is hereby granted, + provided that the above copyright notice appear in all copies and that + both that copyright notice and this permission notice appear in + supporting documentation, and that the name of Digital not be + used in advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + SOFTWARE. + + ---------------------------------------------------------------------- + libic + + Copyright © 2001 Keith Packard + + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation, and that the name of Keith Packard not be used in + advertising or publicity pertaining to distribution of the software without + specific, written prior permission. Keith Packard makes no + representations about the suitability of this software for any purpose. It + is provided "as is" without express or implied warranty. + + KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + + ---------------------------------------------------------------------- + slim + + slim is Copyright © 2003 Richard Henderson + + Permission to use, copy, modify, distribute, and sell this software + and its documentation for any purpose is hereby granted without fee, + provided that the above copyright notice appear in all copies and that + both that copyright notice and this permission notice appear in + supporting documentation, and that the name of Richard Henderson not be + used in advertising or publicity pertaining to distribution of the + software without specific, written prior permission. Richard Henderson + makes no representations about the suitability of this software for + any purpose. It is provided "as is" without express or implied + warranty. + + RICHARD HENDERSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + EVENT SHALL RICHARD HENDERSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + +=== libjpeg + +The jpeg directory, except the files under the thunderbird section, are licensed +under the following terms: + + The authors make NO WARRANTY or representation, either express or implied, + with respect to this software, its quality, accuracy, merchantability, or + fitness for a particular purpose. This software is provided "AS IS", and you, + its user, assume the entire risk as to its quality and accuracy. + + This software is copyright (C) 1991-1998, Thomas G. Lane. + All Rights Reserved except as specified below. + + Permission is hereby granted to use, copy, modify, and distribute this + software (or portions thereof) for any purpose, without fee, subject to these + conditions: + (1) If any part of the source code for this software is distributed, then this + README file must be included, with this copyright and no-warranty notice + unaltered; and any additions, deletions, or changes to the original files + must be clearly indicated in accompanying documentation. + (2) If only executable code is distributed, then the accompanying + documentation must state that "this software is based in part on the work of + the Independent JPEG Group". + (3) Permission for use of this software is granted only if the user accepts + full responsibility for any undesirable consequences; the authors accept + NO LIABILITY for damages of any kind. + + These conditions apply to any software derived from or based on the IJG code, + not just to the unmodified library. If you use our work, you ought to + acknowledge us. + + Permission is NOT granted for the use of any IJG author's name or company name + in advertising or publicity relating to this software or products derived from + it. This software may be referred to only as "the Independent JPEG Group's + software". + + We specifically permit and encourage the use of this software as the basis of + commercial products, provided that all warranty or liability claims are + assumed by the product vendor. + +=== bzip2 + +The modules/libbz2/src directory is licensed under the following terms: +(from modules/libbz2/src/LICENSE) + + This program, "bzip2", the associated library "libbzip2", and all + documentation, are copyright (C) 1996-2005 Julian R Seward. All + rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + + 3. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + + 4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Julian Seward, Cambridge, UK. + jseward@acm.org + bzip2/libbzip2 version 1.0.3 of 15 February 2005 + +=== libpng + +The directory modules/libimg/png is licensed under the following terms: +(from modules/libimg/png/LICENSE) + + This copy of the libpng notices is provided for your convenience. In case of + any discrepancy between this copy and the notices in the file png.h that is + included in the libpng distribution, the latter shall prevail. + + COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: + + If you modify libpng you may insert additional notices immediately following + this sentence. + + libpng version 1.2.6, September 12, 2004, is + Copyright (c) 2004 Glenn Randers-Pehrson, and is + distributed according to the same disclaimer and license as libpng-1.2.5 + with the following individual added to the list of Contributing Authors + + Cosmin Truta + + libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are + Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are + distributed according to the same disclaimer and license as libpng-1.0.6 + with the following individuals added to the list of Contributing Authors + + Simon-Pierre Cadieux + Eric S. Raymond + Gilles Vollant + + and with the following additions to the disclaimer: + + There is no warranty against interference with your enjoyment of the + library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is with + the user. + + libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are + Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are + distributed according to the same disclaimer and license as libpng-0.96, + with the following individuals added to the list of Contributing Authors: + + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + + libpng versions 0.89, June 1996, through 0.96, May 1997, are + Copyright (c) 1996, 1997 Andreas Dilger + Distributed according to the same disclaimer and license as libpng-0.88, + with the following individuals added to the list of Contributing Authors: + + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + + libpng versions 0.5, May 1995, through 0.88, January 1996, are + Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. + + For the purposes of this copyright and license, "Contributing Authors" + is defined as the following set of individuals: + + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + + The PNG Reference Library is supplied "AS IS". The Contributing Authors + and Group 42, Inc. disclaim all warranties, expressed or implied, + including, without limitation, the warranties of merchantability and of + fitness for any purpose. The Contributing Authors and Group 42, Inc. + assume no liability for direct, indirect, incidental, special, exemplary, + or consequential damages, which may result from the use of the PNG + Reference Library, even if advised of the possibility of such damage. + + Permission is hereby granted to use, copy, modify, and distribute this + source code, or portions hereof, for any purpose, without fee, subject + to the following restrictions: + + 1. The origin of this source code must not be misrepresented. + + 2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + + The Contributing Authors and Group 42, Inc. specifically permit, without + fee, and encourage the use of this source code as a component to + supporting the PNG file format in commercial products. If you use this + source code in a product, acknowledgment is not required but would be + appreciated. + + + A "png_get_copyright" function is available, for convenient use in "about" + boxes and the like: + + printf("%s",png_get_copyright(NULL)); + + Also, the PNG logo (in PNG format, of course) is supplied in the + files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). + + Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a + certification mark of the Open Source Initiative. + + Glenn Randers-Pehrson + glennrp@users.sourceforge.net + September 12, 2004 + +=== zlib + +The directories modules/zlib/src and security/nss/cmd/zlib are licensed under +the following terms: + + (C) 1995-2004 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + If you use the zlib library in a product, we would appreciate *not* + receiving lengthy legal documents to sign. The sources are provided + for free but without warranty of any kind. The library has been + entirely written by Jean-loup Gailly and Mark Adler; it does not + include third-party code. + + If you redistribute modified sources, we would appreciate that you include + in the file ChangeLog history information documenting your changes. Please + read the FAQ for more information on the distribution of modified source + versions. + +=== expat + +The directory parser/expat is licensed under the following terms: +(from parser/expat/COPYING) + + Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd + and Clark Cooper + Copyright (c) 2001, 2002 Expat maintainers. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --- thunderbird-3.1.8+build1+nobinonly.orig/debian/docs +++ thunderbird-3.1.8+build1+nobinonly/debian/docs @@ -0,0 +1 @@ +debian/MPL --- thunderbird-3.1.8+build1+nobinonly.orig/debian/changelog +++ thunderbird-3.1.8+build1+nobinonly/debian/changelog @@ -0,0 +1,4314 @@ +thunderbird (3.1.8+build1+nobinonly-0ubuntu6) natty; urgency=low + + * Land the Unity appmenu extension work. We're building it from the + Thunderbird source tree rather than it's own source package, + for a few reasons (although it does ship in its own binary): + + It is guaranteed to run with the same ABI it builds with + + We need separate builds for Firefox and Thunderbird, so it + makes sense this way + + We get automatic Breakpad integration + - add debian/globalmenu/* containing the extension code, without its + build system + - update debian/control + - update debian/rules + - add debian/patches/unity_globalmenu_support.patch for the autoconf + and system-headers bits + - update debian/patches/series + + -- Chris Coulson Tue, 08 Feb 2011 02:30:37 +0000 + +thunderbird (3.1.8+build1+nobinonly-0ubuntu5) natty; urgency=low + + * Fix broken symlinks in the SDK that prevent anything from building + against it + - update debian/rules + + -- Chris Coulson Fri, 04 Feb 2011 15:25:56 +0000 + +thunderbird (3.1.8+build1+nobinonly-0ubuntu4) natty; urgency=low + + * Provide a system folder for installing Thunderbird-specific extensions + in, like we already have for Firefox + - update debian/thunderbird.install + - update debian/rules + + -- Chris Coulson Fri, 04 Feb 2011 01:38:20 +0000 + +thunderbird (3.1.8+build1+nobinonly-0ubuntu3) natty; urgency=low + + * Fix LP: #710648 - armel FTBFS in Breakpad code, thanks to Jani Monoses + for the patch + - add debian/patches/lp_710648_arm_it_instruction_breakpad.patch + - update debian/patches/series + + -- Chris Coulson Mon, 31 Jan 2011 23:17:55 +0000 + +thunderbird (3.1.8+build1+nobinonly-0ubuntu2) natty; urgency=low + + * Add missing curl build-dep, needed for the crashreporter + - update debian/control + + -- Chris Coulson Fri, 28 Jan 2011 18:21:18 +0000 + +thunderbird (3.1.8+build1+nobinonly-0ubuntu1) natty; urgency=low + + * New upstream release v3.1.8 (THUNDERBIRD_3_1_8_BUILD1) + + * Refresh patches after landing of bmo: 506601 aka Transition LDAP SDKs + to Mercurial (from cvs) + - update debian/patches/no_dynamic_nss_softokn.patch + * Switch on Breakpad: + - add new thunderbird-mozsymbols package for the debug symbols + + update debian/control + + update debian/rules + - add patch to allow Breakpad to work on ptrace hardened kernels: + + add debian/patches/bz591331_att469858_breakpad_allow_ptrace.patch + + update debian/patches/series + - blacklist Thunderbird in apport + + add debian/apport/blacklist + + update debian/rules + + -- Chris Coulson Fri, 28 Jan 2011 16:31:12 +0000 + +thunderbird (3.1.7+build3+nobinonly-0ubuntu3) natty; urgency=low + + * debian/control: Drop unnecessary libhal-dev build dependency. The code + does not use hal anywhere. + + -- Martin Pitt Thu, 27 Jan 2011 10:58:35 +0100 + +thunderbird (3.1.7+build3+nobinonly-0ubuntu2) natty; urgency=low + + * Fix ARM FTBFS by adding an explicit IT instruction in the Thumb2 assembly + code. (LP: #682742) + - add debian/patches/lp682742_arm_it_instruction.patch + - update debian/patches/series + * Clean up a few generated files in clean target + - update debian/rules + + -- Jani Monoses Fri, 10 Dec 2010 00:22:11 -0600 + +thunderbird (3.1.7+build3+nobinonly-0ubuntu1) natty; urgency=low + + * New upstream release v3.1.7 build 3 (THUNDERBIRD_3_1_7_BUILD3) + + -- Micah Gersten Wed, 08 Dec 2010 01:58:22 -0600 + +thunderbird (3.1.7+build2+nobinonly-0ubuntu1) natty; urgency=low + + * New upstream release v3.1.7 (THUNDERBIRD_3_1_7_BUILD2) + + * Drop libpixman linking patch after landing upstream + - drop debian/patches/bz615526_att493959_explicitly_link_libpixman.patch + - update debian/patches/series + + -- Micah Gersten Mon, 06 Dec 2010 04:46:49 -0600 + +thunderbird (3.1.7+build1+nobinonly-0ubuntu2) natty; urgency=low + + * Pass -lpixman-1 to the linker, by disabling an unnecessary check + in configure + - add debian/patches/bz615526_att493959_explicitly_link_libpixman.patch + - update debian/patches/series + * When linking thunderbird-bin, prepend the static archives to LIBS + rather than appending them to EXTRA_LIBS, which comes after LIBS when + calling the linker. The static archives mostly depend on things in LIBS, + so this fixes builds with --as-needed (LP: #682748) + - add debian/patches/bzXXX_linker_flag_ordering.patch + - update debian/patches/series + + -- Chris Coulson Tue, 30 Nov 2010 21:28:42 +0000 + +thunderbird (3.1.7+build1+nobinonly-0ubuntu1) natty; urgency=low + + * New upstream release v3.1.7 (THUNDERBIRD_3_1_7_BUILD1) + + * fix LP: #351322 - Make GNOME menu entry for Thunderbird consistent with + Firefox, Evolution + - update debian/thunderbird.desktop + * Drop patch after upstream landing of (bmo: 551152) aka Symlinked components + break everything + - drop debian/patches/lp518422.patch + - update debian/patches/series + * Drop patch to allow building with system NSPR less than 4.8.6 since the + minimum NSPR is now 4.8.6 + - drop debian/patches/fix_build_w_nspr_less_than_486.patch + - update debian/patches/series + + -- Micah Gersten Sun, 03 Oct 2010 21:33:10 -0500 + +thunderbird (3.1.6+build1+nobinonly-0ubuntu0.10.10.1) maverick-security; urgency=low + + * New upstream release v3.1.6 (THUNDERBIRD_3_1_6_BUILD1) + - see USN-1011-2 + + -- Chris Coulson Wed, 27 Oct 2010 08:51:00 -0400 + +thunderbird (3.1.5+build1+nobinonly-0ubuntu0.10.10.1) maverick-security; urgency=low + + * New upstream release v3.1.5 (THUNDERBIRD_3_1_5_BUILD1) + - see USN-998-1 + + * Bump minimum system NSPR to 4.8.6 after landing of (bmo: 567620) aka + Bump minimum required version for system NSPR to 4.8.6 + - update debian/rules + * Bump minimum system NSS to 3.12.8 after landing of (bmo: 600104) aka + Bump minimum required version for system NSS to 3.12.8 + - update debian/rules + + -- Micah Gersten Sun, 03 Oct 2010 21:33:10 -0500 + +thunderbird (3.1.4+build2+nobinonly-0ubuntu3) maverick; urgency=low + + * Fix LP: #630281 - After upgrade keyboard "mail" shortcut does not work. + Set the default client launcher to MOZ_APP_LAUNCHER rather than the + executable in our volatile install directory. Define MOZ_APP_LAUNCHER + in the launcher shell script + - add bz593948_att474767_lp630281_moz_app_launcher_for_default_client.patch + - update debian/patches/series + - update debian/thunderbird.sh.in + + -- Chris Coulson Tue, 21 Sep 2010 21:05:31 +0100 + +thunderbird (3.1.4+build2+nobinonly-0ubuntu2) maverick; urgency=low + + * Add translations for the .desktop file; Thanks to David Planella for + coordinating and the translators for their contributions. + - update debian/thunderbird.desktop + + Croatian + + Galician + + Uyghur + * Add GenericName for select .desktop translations + - update debian/thunderbird.desktop + + Catalan + + German + + Russian + + -- Micah Gersten Thu, 16 Sep 2010 11:25:47 -0500 + +thunderbird (3.1.4+build2+nobinonly-0ubuntu1) maverick; urgency=low + + * New upstream release v3.1.4 (THUNDERBIRD_3_1_4_BUILD2) + + [ Micah Gersten ] + * fix LP: #630902 - Thunderbird's .desktop file does not contain slovak + translation; Thanks to Pavol Klačanský for the translations + - update debian/thunderbird.desktop + + [ Chris Coulson ] + * Fix LP: #637434 - components.list is not installed + - update debian/thunderbird.install + * De-fuzz patches + - update debian/patches/add_syspref_dir.patch + + -- Chris Coulson Wed, 15 Sep 2010 20:49:25 +0100 + +thunderbird (3.1.3+build1+nobinonly-0ubuntu1) maverick; urgency=low + + * New upstream release v3.1.3 (THUNDERBIRD_3_1_3_BUILD1) + + * Add patch to allow building with system NSPR less than 4.8.6 + - add debian/patches/fix_build_w_nspr_less_than_486.patch + - update debian/series + + -- Micah Gersten Thu, 02 Sep 2010 11:05:12 -0500 + +thunderbird (3.1.2+nobinonly-0ubuntu1) maverick; urgency=low + + * New upstream release v3.1.2 (THUNDERBIRD_3_1_2_RELEASE) (LP: #598935) + - fix LP: #594280 - Thunderbird startup-notification bug + - fix LP: #386356 - E-mails can be moved to non-existant folders + + * fix LP: #614190 - Add Traditional and Simplified Chinese translations to + desktop file; Thanks to Cheng-Chia Tseng for Traditional Chinese and + Aron Xu for Simplified Chinese + - update debian/thunderbird.desktop + * fix LP: #610867 - Missing French GenericName translations in .desktop file + - update debian/thunderbird.desktop + * Add build depends on libnotify-dev, libiw-dev, mesa-common-dev since + xulrunner-1.9.2 based apps require them + - update debian/control + * Update mozclient to reference comm-1.9.2 branch + - update debian/rules + - update debian/mozclient/thunderbird.conf + * Make all .install files install from thunderbird-3* dir + - update debian/*.install + * Refresh patches + - update debian/patches/fix_install_sdk_bin.patch + - update debian/patches/fix_installdir.patch + * Update thunderbird.install for 3.1.x files + - update debian/thunderbird.install + * Add patch so Thunderbird doesn't esxperience LP 518422; Thanks to + Alexander Sack for the original patch + - update debian/patches/series + - add debian/patches/lp518422.patch + * Update profile migrator from 3.0 to 3.1 and include beta 3.1 participation + - update debian/migrator/main.c + - update debian/thunderbird.sh.in + * Drop Thunderbird 2 migration code in the shell wrapper since there's no + migration path in Maverick + - update debian/thunderbird.sh.in + + -- Micah Gersten Fri, 20 Aug 2010 09:36:36 -0500 + +thunderbird (3.0.6+build2+nobinonly-0ubuntu1) maverick; urgency=low + + * New upstream release v3.0.6 (THUNDERBIRD_3_0_6_BUILD2) + - see USN-958-1 + + [ Chris Coulson ] + * Fix LP: #600217 - StartupWMClass value in thunderbird.desktop file is + not correct + - update debian/thunderbird.desktop + + [ Micah Gersten ] + * Fix LP: #590452 - Thunderbird needs change for dictionary transition; + Use hunspell dictionaries for Maverick and later + - update debian/rules + * Fix LP: #569762 - Thunderbird's .desktop file does not contain russian + translation; Thanks to Igor Zubarev for the translation + - update debian/thunderbird.desktop + * Fix LP: #563535 - thunderbird -g fails due to invoking "$LIBDIR/$META_NAME" + instead of "$LIBDIR/$META_NAME"-bin + - update debian/thunderbird.sh.in + * Fix LP: #411691 - many Exception... "update.locale file doesn't exist" in + console + - update debian/rules + + -- Micah Gersten Tue, 13 Jul 2010 08:59:50 -0500 + +thunderbird (3.0.5+build2+nobinonly-0ubuntu1) maverick; urgency=low + + * New upstream release v3.0.5 (THUNDERBIRD_3_0_5_BUILD2) + - see USN-943-1 + - fix LP: #556829 - thunderbird-bin crashed with SIGSEGV in + nsQueryInterface::operator() + - fix LP: #571296 - Thunderbird 3 "Message Pane" always visible + + [ Micah Gersten ] + * Drop patch after upstream landing of (bmo: 544481) aka + Build fails on Ubuntu Lucid Lynx using 'dash' shell + - drop debian/patches/fix-build-glitch.patch + - update debian/patches/series + + -- Micah Gersten Wed, 26 May 2010 12:28:42 -0500 + +thunderbird (3.0.4+nobinonly-0ubuntu4) lucid; urgency=low + + [ Micah Gersten ] + * fix LP: #509248 - Thunderbird 3 Shows only English dictionary in Spell + menu; Don't install Thunderbird dictionaries; Link Thunderbird dictionaries + folder to system dictionaries; Create symlink in postinst if dictionaries + dir is empty + - update debian/thunderbird.postinst.in + - update debian/thunderbird.install + - update debian/rules + + [ Chris Coulson ] + * Fix LP: #543060 - gnome integration should work even without -gnome-support. + Move the gnome components to the main thunderbird package whilst using + thunderbird-gnome-support to pull in the gnome dependencies: + - update debian/rules + - remove debian/thunderbird-gnome-support.postinst.in + - remove debian/thunderbird-gnome-support.prerm.in + - add replaces/breaks to thunderbird on previous versions of + thunderbird-gnome-supportm to ensure the upgrade works + + -- Chris Coulson Tue, 20 Apr 2010 16:18:24 +0100 + +thunderbird (3.0.4+nobinonly-0ubuntu3) lucid; urgency=high + + * fix LP: #563893 - Thunderbird will not launch do to a recursive symlink; + Test if old profile directory is a symlink before migration + - update debian/thunderbird.sh.in + * Add NEWS file regarding problem with last version + - add debian/thunderbird.NEWS + + -- Micah Gersten Thu, 15 Apr 2010 12:19:31 -0500 + +thunderbird (3.0.4+nobinonly-0ubuntu2) lucid; urgency=low + + * fix LP: #558620 - Thunderbird moves profile folder to .thunderbird.upstream; + Add symlink from old profile directory to new profile directory + - update debian/thunderbird.sh.in + * fix LP: #199003 - thunderbird-gnome-support provides gnome-www-browser; + drop Provides for thunderbird-gnome-support package + - update debian/control + * fix LP: #563059 - NS_InvokeByIndex in xptcinvoke_arm.cpp is not Thumb-2 + safe for Thunderbird in Lucid + - update debian/patches/series + - add debian/patches/bz532198_lp488354_ns_invokebyindex_not_thumb2_safe.patch + + -- Micah Gersten Wed, 14 Apr 2010 10:42:43 -0500 + +thunderbird (3.0.4+nobinonly-0ubuntu1) lucid; urgency=low + + * New upstream release v3.0.4 (THUNDERBIRD_3_0_4_RELEASE) + + [ Micah Gersten ] + * fix LP: #539375 - Thunderbird is not listed Ubuntu Software Center's "Mail" + section; Add Email to Categories in .desktop file + - update debian/thunderbird.desktop + * Bump minimum system NSS to 3.12.6 after upstream landing of (bmo: 545755) + aka Update Mozilla stable branches to NSS 3.12.6 and minimal support for + RFC 5746 + - update debian/rules + + [ Ricardo Perez Lopez ] + * fix LP: #543590 - Thunderbird .desktop file lacks of Spanish translations + - update debian/thunderbird.desktop + + [ Gabor Kelemen ] + * fix LP: #331794 - No Hungarian entry in the .desktop file + - update debian/thunderbird.desktop + + -- Micah Gersten Fri, 02 Apr 2010 00:00:41 -0500 + +thunderbird (3.0.3+nobinonly-0ubuntu2) lucid; urgency=low + + * fix LP: #526290 - Thunderbird 3 hyperlinks broken; installing + the thunderbird-gnome-support package does not trigger component + re-registration. This caused users that install thunderbird-gnome-support + after first run without gnome integration until they upgrade/reinstall + thunderbird main package. We fix this by adding a postinst.in/prerm.in + for the -gnome-support package that touches $PKGLIBDIR/.autoreg to trigger + component reregistration on next start. + - add debian/thunderbird-gnome-support.postinst.in + - add debian/thunderbird-gnome-support.prerm.in + - update debian/rules + * fix LP: #527138 - enigmail is uninstallable in lucid, needs update to 1.0 - blocked + by missing tbird sdk; add missing SDK and headers to thunderbird-dev package; + this allows extensions with native components like enigmail and traybiff to build. + To fix this we add INSTALL_SDK=1 to DEB_MAKE_EXTRA_ARGS in rules and add the + appropriate paths to a fresh thunderbird-dev.install package. + - update debian/rules + - add debian/thunderbird-dev.install + * fix SDK packaging for system-nspr/nss; we install links for nspr-config and + /usr/include/nspr (and nss-config and /usr/include/nss) to the tbird sdk if + system nspr/nss is used + - update debian/rules + * fix build failures on hardy-jaunty; DEB_MAKE_EXTRA_ARGS doesnt exist in the + cdbs versions available there; using DEB_MAKE_ENVVARS is supposed to work + everywhere; hence we use that to set INSTALL_SDK + - update debian/rules + * the sdk binaries (xpt_* and xpidl) seems to get not installed for applications + != xulrunner; we work around by patching toolkits packager.mk to install them + into "installdir" + - add debian/patches/fix_install_sdk_bin.patch + - update debian/patches/series + * mailnews does not install enough mime headers for enigmail when using + INSTALL_SDK=1; we add nsStreamConverter.h, mimecryp.h and mimemoz2.h to + EXPORT. + - add debian/patches/fix_sdk_install_mimecrypt.patch + - update debian/patches/series + * install xpidl and xpt_link/xpt_dump to pkglibdir of thunderbird-dev package + - update debian/thunderbird-dev.install + + -- Alexander Sack Mon, 22 Mar 2010 23:51:02 +0100 + +thunderbird (3.0.3+nobinonly-0ubuntu1) lucid; urgency=low + + * New upstream release v3.0.3 (THUNDERBIRD_3_0_3_RELEASE) + + * fix LP: #458148 - Thunderbird and Sunbird claim to be able to open PNG, + JPEG and GIF files + - update debian/thunderbird.desktop + * fix failure in build due to unrecognized line-end-escapes in Makefile + (Thanks kees for the original patch) + - add debian/patches/fix-build-glitch.patch + - update debian/patches/series + + -- Micah Gersten Mon, 08 Mar 2010 08:28:50 -0600 + +thunderbird (3.0.1+nobinonly-0ubuntu1) lucid; urgency=low + + * New upstream release v3.0.1 (THUNDERBIRD_3_0_1_RELEASE) + - fix LP: #257483 - thunderbird-bin crashed with Badwindow Error + - fix LP: #499603 - thunderbird-bin crashed with SIGSEGV when trying to + Edit as New + + * Fix FTBFS on Sparc by disabling jit (LP: #523627) + - update debian/rules + * Drop cairo FTBFS patch after upstream landing + - drop debian/patches/bz466250_att349521_fix_ftbfs_with_cairo_fb.patch + - update debian/series + + -- Micah Gersten Sun, 21 Feb 2010 12:15:33 -0600 + +thunderbird (3.0+nobinonly-0ubuntu1) lucid; urgency=low + + * New Upstream Release 3.0 (THUNDERBIRD_3_0_RELEASE) + - LP: #50902 - Thunderbird displays useless dialog + - LP: #52667 - Thunderbird doesn't support RFC-2369 + - LP: #49033 - Doesn't recognize upper case extension (.JPG) + - LP: #56465 - Per folder column widths + - LP: #68456 - CTRL-Shift-K bound to 2 functions + - LP: #79337 - Typo in Server Information for Add Account Wizard + - LP: #1084 - No scroll on full headers list + - LP: #62071 - Middle click on scrollbar pastes instead of jumping + - LP: #119358 - Weak default authentication mode + - LP: #120672 - No option to empty junk folder with right click + - LP: #96566 - movemail doesn't work with default privs + - LP: #122529 - Non-Thunderbird IMAP folders not visible to Thunderbird + - LP: #241276 - Not able to paste image into thunderbird compose window + - LP: #244635 - scrollboxes scroll to offset 0 when resized + - LP: #259387 - "Edit Message as New" broken for eml messages + - LP: #120281 - Editing a message from the drafts folder leaves line breaks + - LP: #115484 - Dialogue boxes too large for 1024x768 resolution + - LP: #320034 - Mail with self referencing headers breaks threading + - LP: #160794 - shortcuts different in windows and linux + - LP: #280987 - thunderbird keeps asking a password when working off-line + - LP: #369150 - Thunderbird splits email addresses with non-ascii characters + and a comma in From: field + - LP: #135066 - Thunderbird doesn't use Ubuntu icon theme + - LP: #297301 - after authentication error the password is forgotten + - LP: #487541 - thunderbird-bin crashed with SIGSEGV (AFS filesystem) + - LP: #485224 - Thunderbird saves double attachment file name endings on + FAT32 and NTFS + - LP: #482496 - When using SCIM ANTHY, autosaving fails, and then get asked + about sending in UTF-8 + + [ Fabien Tassin ] + * Add build-depends on autoconf2.13, autotolls-dev, mozilla-devscripts + libglib2.0-dev (>= 2.12), libstartup-notification0-dev, libbz2-dev, + libpixman-1-dev, libdbus-1-dev (>= 1.0.0), libdbus-glib-1-dev (>= 0.60), + libhal-dev (>= 0.5.8), libasound2-dev, libreadline5-dev | libreadline-dev, + libkrb5-dev + * Update build-depends minimums for libx11-dev (>= 2:1.0), + libgtk2.0-dev (>= 2.12), zlib1g-dev (>= 1:1.2.3), libpng12-dev (>= 1.2.0), + libjpeg62-dev (>= 6b), libcairo2-dev (>= 0.5.8), libgnome2-dev (>= 2.16), + libgnomevfs2-dev (>= 1:2.16), libgnomeui-dev (>= 2.16), + libnss3-dev (>= 3.12.0~1.9b3) + * Bump standards version to 3.8.0 + * Replace ${Source-Version} by ${binary:Version} in control file + - update debian/control + * Bump requirement for system nspr to >= 4.8 since Mozilla bug 492464 landed + * Bump requirement for system nss to >= 3.12.3 since Mozilla bug 485052 landed + * Use in-source hunspell when hunspell 1.2 is not available + * Add conditionnal support for --with-libxul-sdk controlled by + $(USE_SYSTEM_XUL) + - update debian/rules + * Add postinst/prerm scripts to maintain .autoreg + - update debian/rules + - add debian/thunderbird.postinst.in + - add debian/thunderbird.prerm.in + * Add thunderbird to the list of Preferred Applications in Gnome + - add debian/thunderbird.xml + - update debian/thunderbird-gnome-support.install + * Target the 'default' branch instead of tip + - add debian/moz-rev.sh + - update debian/mozclient/thunderbird.conf + * Import the mozclient project files from mozilla-devscripts + - add debian/mozclient/thunderbird.mk + - add debian/mozclient/thunderbird.conf + - add debian/mozclient/thunderbird-remove.binonly.sh + - update debian/rules + * Import compare.mk from mozilla-devscripts and fix it for embedded tarballs + for which the depth of dist/bin could vary + - add debian/mozclient/compare.mk + - update debian/mozclient/thunderbird-3.0.mk + - update debian/rules + * Drop mozilla-thunderbird, mozilla-thunderbird-dev packages + - update debian/control + * Add new doc files + - add debian/MPL + - add debian/docs + * Fix FTBFS with cairo 1.8.4 that is built with directfb, + triggering some new code, even when directfb was not wanted/detected + in configure + - add debian/patches/bz466250_att349521_fix_ftbfs_with_cairo_fb.patch + - update debian/patches/series + * Drop Thunderbird 2 Patches: + - drop debian/patches/18_arm_xpcom_unused_attribute.dpatch + - drop debian/patches/38_arm_xpcom_optim.dpatch + - drop debian/patches/412610_attachment_309958.patch + - drop debian/patches/82_prefs.dpatch + - drop debian/patches/autoconf-regen + - drop debian/patches/bz280419_att_267284-readonly-download.patch + - drop debian/patches/bz322806_arm-vfp-2538:3f78d5e894bc.patch + - drop debian/patches/bz335810-pango-cursor-up-down-fix + - drop debian/patches/bz339782_cvs_xptcinvoke_arm_backport_1.13.patch + - drop debian/patches/bz344818_att264996_detect_xrender + - drop debian/patches/bzXXX_ftbfs_fontconfig.patch + - drop debian/patches/force-no-pragma-visibility-for-gcc-4.2_4.3 + - drop debian/patches/ftbfs_gcc44_elif.patch + - drop debian/patches/gnome-mime-handling + - drop debian/patches/hunspell-support + - drop debian/patches/lp345189_absolute_font_sizing.patch + - drop debian/patches/mailnews_mime_export + - drop debian/patches/main-fsh + - drop debian/patches/moz-user-dir-for-xre-profiles + - drop debian/patches/reply-to-list-support + - drop debian/patches/ship_movemail_rdf + - drop debian/patches/syspref-folder-support + - drop debian/patches/system-cairo-fix + - drop debian/patches/ubuntu-printing-patch + * Add Thunderbird 3 Patches: + - add debian/patches/bz420391_attXXXX_fix_unix_installer.patch + - add debian/patches/bzXXX_ftbfs_static_with_system_hunspell.patch + - add debian/patches/fix_installdir.patch + - add debian/patches/no_dynamic_nss_softokn.patch + + [ Alexander Sack ] + * add -dbg packages: thunderbird-3.0-dbg thunderbird-3.0-gnome-support-dbg + - update debian/control + + [ Micah Gersten ] + * Add ${misc:Depends} on thunderbird, thunderbird-gnome-support, and + thunderbird-dev + - update debian/control + * Bump minimum system cairo to 1.8.8 + - update debian/rules + * Add migrator/wrapper from Firefox to import settings from daily builds + - update debian/rules + - add debian/migrator/main.c + - add debian/thunderbird.sh.in + * Add system prefs patch from xulrunner-1.9.1 + - update debian/patches/series + - add debian/patches/add_syspref_dir.patch + + -- Micah Gersten Sun, 14 Feb 2010 21:04:09 -0600 + +thunderbird (2.0.0.23+build1+nobinonly-0ubuntu1) karmic; urgency=low + + * security/stability update 2.0.0.23 (USN-817-1) + * adjust patches to changed codebase + - update debian/patches/autoconf-regen + + -- Alexander Sack Mon, 17 Aug 2009 16:36:51 +0200 + +thunderbird (2.0.0.22+build1+nobinonly-0ubuntu3) karmic; urgency=low + + * drop gcc-4.3 armel dependency in karmic (LP: #401165) + - update debian/control + - update debian/rules + + -- Alexander Sack Tue, 04 Aug 2009 16:41:14 +0200 + +thunderbird (2.0.0.22+build1+nobinonly-0ubuntu2) karmic; urgency=low + + [ Loic Minier ] + * fix LP: #385325 - crash in JS due to usage of wrong floating point number format; + thanks Michael Casadevall for the research and locating the fix; patch created from + hg rev 2538:3f78d5e894bc aka bmo #322806 + - add debian/patches/bz322806_arm-vfp-2538:3f78d5e894bc + - update debian/patches/series + + [ Michael Casadevall ] + * fix LP: #385325 - stack corruption issues on ARM EABI by cherry picking + patch from 1.9 branch. + - add debian/patches/bz339782_cvs_xptcinvoke_arm_backport_1.13.patch + - update debian/patches/series + * fix build failures on armel by changing default compiler on ARM to gcc-4.3 + and adding armel specific build depend accordingly + - update debian/rules + - update debian/control + + -- Alexander Sack Fri, 10 Jul 2009 16:18:46 +0200 + +thunderbird (2.0.0.22+build1+nobinonly-0ubuntu1.nspr474) karmic; urgency=low + + * security/stability update 2.0.0.22 (USN-782-1) + * add patch to fix ftbfs with gcc 4.4 (s/elif/else/) + - add debian/patches/ftbfs_gcc44_elif.patch + - update debian/patches/series + * fix LP: #345189 - thunderbird 2 treats pixel sized system fonts as + if they were point sized, which causes for to HUGE fonts + - add debian/patches/lp345189_absolute_font_sizing.patch + - update debian/patches/series + * fix LP: #137221 - thunderbird-gnome-support package required for + gnome capabilities; the gnome parts were always loadable modules and + fail to load gracefully if depends cannot be fulfilled anyway; in turn + we ship gnome components in the main thunderbird package and apply a bit + magic in debian/rules to strip the gnome related dependencies from it; + on top of this thunderbird-gnome-support becomes an empty package which gets + all the dependencies for convenience; the purpose of new gnome-support is + hence to install all required depends; in order to add the required depends + to the gnome-support package we introduce a new substvar "shlibs:GnomeShlibs" + and refer to it in control + - remove debian/thunderbird-gnome-support.install + - update debian/rules + - update debian/control + * the change for LP: #137221 moves files from thunderbird-gnome-support to + thunderbird package; adding Replaces to thunderbird package accordingly + - update debian/control + * fix LP: #145716 - panel launcher breaks on upgrade; we provide a + compatibility link for the old mozilla-thunderbird binary + - update debian/thunderbird.links + * drop not used control.in from debian/ dir + - remove debian/control.in + * pick up latest nspr (>= 4.7.4) to potentially fix armel build (LP: #385325) + - update debian/control + + -- Alexander Sack Tue, 16 Jun 2009 14:02:03 +0200 + +thunderbird (2.0.0.21+nobinonly-0ubuntu1) jaunty; urgency=low + + * security/stability update 2.0.0.21 (USN-741-1) + + -- Alexander Sack Wed, 18 Mar 2009 16:41:35 +0100 + +thunderbird (2.0.0.19+nobinonly-0ubuntu1) jaunty; urgency=low + + * security/stability update 2.0.0.19 (USN-701-1) + * fix LP: #301626 - thunderbird disables FORTIFY; we add patch required + to enable fortify and drop CPPFLAGS that disabled it accordingly + - add debian/patches/412610_attachment_309958.patch + - update debian/patches/series + - update debian/rules + + -- Alexander Sack Sat, 03 Jan 2009 20:36:12 +0100 + +thunderbird (2.0.0.18+nobinonly-0ubuntu1) jaunty; urgency=low + + * security/stability update 2.0.0.18 (USN-668-1) + * fix LP: #302388: add arm(el) xpcom patches from icedove package + - add debian/patches/18_arm_xpcom_unused_attribute.dpatch + - add debian/patches/38_arm_xpcom_optim.dpatch + - update debian/patches/series + * rerun autoconf2.13 to adjust configure patch + - update debian/patches/autoconf-regen + + [ Saïvann Carignan ] + * Fix LP: #194970, LP: #190688 - desktop-file-validate warnings: among others + we update Icon field to not use a file extension + - update debian/thunderbird.desktop + + -- Alexander Sack Wed, 26 Nov 2008 12:18:33 +0100 + +thunderbird (2.0.0.17+nobinonly-0ubuntu1) intrepid; urgency=low + + * RELEASE security/stability update 2.0.0.17 (USN-647-1) + + -- Alexander Sack Thu, 25 Sep 2008 15:27:29 +0200 + +thunderbird (2.0.0.16+nobinonly-0ubuntu2) intrepid; urgency=low + + * fix LP: #251602 - crashes in fortify; we use CPPFLAGS=-U_FORTIFY_SOURCE + now. + + -- Alexander Sack Fri, 25 Jul 2008 10:41:52 +0200 + +thunderbird (2.0.0.16+nobinonly-0ubuntu1) intrepid; urgency=low + + * RELEASE security/stability update 2.0.0.16 (USN-629-1) + + * fix LP: #195059 - Thunderbird package description ends with "XXX Todo"; + thanks to Andrew Starr-Bochicchio for drafting this + - update debian/control + + * drop patches applied upstream + - drop debian/patches/bz419350_attachment_306066.patch + - update debian/patches/series + + * adjust patches diverged upstream + - update debian/patches/ubuntu-look-and-feel-report-a-bug-menuitem + + * add explicit -lfontconfig to linker flags used for gfx/ps module + to fix ftbfs in intrepid + - add debian/patches/bzXXX_ftbfs_fontconfig.patch + - update debian/patches/series + + -- Alexander Sack Thu, 24 Jul 2008 15:34:31 +0200 + +thunderbird (2.0.0.14+nobinonly-0ubuntu2) intrepid; urgency=low + + * fix "ftbfs with gcc 4.3 because of include of not shipped iostream.h" + - add debian/patches/bz419350_attachment_306066.patch + - update debian/patches/series + + -- Alexander Sack Fri, 02 May 2008 15:19:13 +0200 + +thunderbird (2.0.0.14+nobinonly-0ubuntu1) intrepid; urgency=low + + * 2.0.0.14 security/stability update (USN-605-1) + * don't force gcc/g++ 4.2 as compiler anymore (4.3 is now in intrepid) + and drop the versioned build-depends accordingly. + - update debian/rules + - update debian/control + * drop patches applied upstream: + - delete debian/patches/bz399589_fix_missing_symbol_with_new_nss.patch + - update debian/patches/series + + -- Alexander Sack Wed, 27 Feb 2008 13:19:09 +0100 + +thunderbird (2.0.0.12+nobinonly-0ubuntu1) hardy; urgency=low + + * USN-582-1 - 2.0.0.12 security/stability update + * update autoconf-regen patch + - update debian/patches/autoconf-regen + + -- Alexander Sack Wed, 27 Feb 2008 13:19:09 +0100 + +thunderbird (2.0.0.9+nobinonly-0ubuntu2) hardy; urgency=low + + * fix missing nss symbol + - add debian/patches/bz399589_fix_missing_symbol_with_new_nss.patch + - update debian/patches/series + * download attachments to /tmp as read-only to prevent data-loss + (LP: #87101) + - add debian/patches/bz280419_att_267284-readonly-download.patch + - update debian/patches/series + + -- Alexander Sack Thu, 14 Feb 2008 21:21:19 +0100 + +thunderbird (2.0.0.9+nobinonly-0ubuntu1) hardy; urgency=low + + * 2.0.0.9 stability update: + * drop keep_version_2006.patch patch as we don't ship a pre-release + build anymore + - delete debian/patches/keep_version_2006.patch + - update debian/patches/series + * Bump Standards-Version to 3.7.3 + - update debian/control + * make Build-Depends more diff friendly + - update debian/control + + [ Fabien Tassin ] + * Ship movemail.rdf (LP: #148942) + - add debian/patches/ship_movemail_rdf + - update debian/patches/series + * Fix typo in french description of the update-notifier file + - update debian/thunderbird-restart-required.update-notifier + * Add XRender detection code in configure + - add debian/patches/bz344818_att264996_detect_xrender + - update debian/patches/autoconf-regen + - update debian/patches/series + * Add a menu file for thunderbird + - add debian/thunderbird.menu + + -- Alexander Sack Sat, 29 Dec 2007 22:20:38 +0100 + +thunderbird (2.0.0.8~pre071022+nobinonly-0ubuntu0.7.10) gutsy-security; urgency=low + + * 2.0.0.8 security/stability update (pre fetched from CVS): + * MFSA 2007-29 aka CVE-2007-5339 (browser), CVE-2007-5340 (javascript) + * MFSA 2007-30 aka CVE-2007-1095 + * MFSA 2007-31 aka CVE-2007-2292 + * MFSA 2007-32 aka CVE-2007-3511, CVE-2006-2894 + * MFSA 2007-33 aka CVE-2007-5334 + * MFSA 2007-34 aka CVE-2007-5337 + * MFSA 2007-35 aka CVE-2007-5338 + * MFSA 2007-36 aka CVE-2007-4841 (windows only) + + Packaging: + * debian/patches/bz389801-theme-crash-with-GtkOptionMenu-indicator_size-and-indicator_spacing.patch: + drop patch - applied upstream + * debian/patches/fix-rss.rdf-install-dir: drop patch - applied upstream. + * debian/patches/keep_version_2006.patch: stick with version info 2.0.0.6 + * debian/patches/autoconf-regen: rerun autoconf2.13 + * debian/patches/series: adapt series file accordingly. + + -- Alexander Sack Mon, 22 Oct 2007 13:00:15 +0200 + +thunderbird (2.0.0.6+nobinonly-0ubuntu1) gutsy; urgency=low + + * repack orig.tar.gz to not contain binary only files found in LP: #121734 + * debian/remove.binonly.sh: debian/remove.binonly.sh import script to + remove binary-only files + + -- Alexander Sack Mon, 08 Oct 2007 18:36:36 +0200 + +thunderbird (2.0.0.6-0ubuntu5) gutsy; urgency=low + + * add Recommends: myspell-en-us | hunspell-dictionary | myspell-dictionary + (LP: #138751). + + -- Alexander Sack Fri, 05 Oct 2007 11:37:57 +0200 + +thunderbird (2.0.0.6-0ubuntu4) gutsy; urgency=low + + * debian/thunderbird.links: install upstream-compatibility links to + system nss3 and nspr4 files (LP: #133171). + + -- Alexander Sack Mon, 24 Sep 2007 10:58:41 +0200 + +thunderbird (2.0.0.6-0ubuntu3) gutsy; urgency=low + + * debian/patches/bz389801-theme-crash-with-GtkOptionMenu-indicator_size-and-indicator_spacing.patch, + series: prefetch latest patch from bugzilla 389801 to theme dependent + top-crash. (LP: #129007) + * debian/thunderbird.desktop: add finish and swedish translations to + .desktop file (LP: #126112). + + -- Alexander Sack Wed, 19 Sep 2007 18:21:22 +0200 + +thunderbird (2.0.0.6-0ubuntu2) gutsy; urgency=low + + * debian/rules, debian/control: use gcc-4.2/g++-4.2 on all architectures + * debian/patches/autoconf-regen: update configure patch to enable + force-no-pragma-visibility-for-gcc-4.2_4.3 patch during build + * debian/patches/force-no-pragma-visibility-for-gcc-4.2_4.3, + debian/patches/series: don't use visibility gcc pragmas; fix build-failure + on gcc 4.2 and 4.3. + + -- Alexander Sack Thu, 30 Aug 2007 13:49:33 +0200 + +thunderbird (2.0.0.6-0ubuntu1) gutsy; urgency=low + + * 2.0.0.5 security/stability update: + * MFSA 2007-27 aka CVE-2007-3845, SA26201, VU#783400, + VU##403150: "Unescaped URIs passed to external programs" + * MFSA 2007-26 aka CVE-2007-3844: "Privilege escalation through + chrome-loaded about:blank windows" + + -- Alexander Sack Thu, 2 Aug 2007 14:54:14 +0200 + +thunderbird (2.0.0.5-0ubuntu1) gutsy; urgency=low + + * 2.0.0.5 security/stability update: + * MFSA 2007-23 aka CVE-2007-3670: Remote code execution by + launching Firefox from Internet Explorer. + * MFSA 2007-18 aka CVE-2007-3670: Crashes with evidence of memory + corruption. + + * debian/thunderbird.desktop: include more desktop file translations. + + -- Alexander Sack Mon, 23 Jul 2007 11:24:27 +0200 + +thunderbird (2.0.0.4-0ubuntu1) gutsy; urgency=low + + * final release upload; build with updated original tarball. + * debian/rules: --disable-freetype2 in an attempt to tackle bad fonts + * debian/patches/82_prefs.dpatch|series: import default font fixes + from xulrunner 1.8.1.4-1 patchset (thanks to Mike Hommey + ) + + -- Alexander Sack Mon, 18 Jun 2007 14:51:58 +0200 + +thunderbird (2.0.0.4~rc1-0ubuntu1) gutsy; urgency=low + + * stability/security upstream release 2.0.0.4 (rc1) + - CVE-2007-2867 aka MFSA 2007-12 (l): Crashes with evidence of memory + corruption (rv:1.8.0.12/1.8.1.4) - layout engine + - CVE-2007-2868 aka MFSA 2007-12 (j): Crashes with evidence of memory + corruption (rv:1.8.0.12/1.8.1.4) - javascript engine + - CVE-2007-1558 aka MFSA 2007-15: Security Vulnerability in APOP + Authentication + * debian/patches/gcc-workaround-visibility-hidden, debian/patches/series: + applied upstream -> dropped visibility workaround patch + * debian/patches/gnome-mime-handling: updated patch for bz273524 in + response to upstream landing of bz373955 + * debian/patches/autoconf-regen: rerun autoconf accordingly + + -- Alexander Sack Thu, 5 Jun 2007 10:54:00 +0200 + +thunderbird (2.0.0.0-0ubuntu3~.mt1) gutsy; urgency=low + + * mozilla team feisty backport build + + -- Alexander Sack Fri, 25 May 2007 11:17:00 +0200 + +thunderbird (2.0.0.0-0ubuntu3) gutsy; urgency=low + + * debian/thunderbird.links: add link to not break security manager + breakage (usr/lib/nss/libnssckbi.so usr/lib/thunderbird/libnssckbi.so) + + -- Alexander Sack Fri, 4 May 2007 00:19:00 +0200 + +thunderbird (2.0.0.0-0ubuntu2) gutsy; urgency=low + + * debian/control[.in]: fix ftbfs because of missing docbook-to-man + Build-Depends. + + -- Alexander Sack Thu, 3 May 2007 18:33:00 +0200 + +thunderbird (2.0.0.0-0ubuntu1) gutsy; urgency=low + + * bump version to 2.0.0.0 in preparation of official upload + * debian/patches/mailnews_mime_export: added patch to export mime headers: + mimecryp.h + mimemoz2.h - needed by enigmail + * debian/patches/series: add patch to quilt series accordingly + * debian/rules: use --with-user-appdir configure option to set MOZ_USER_DIR + * debian/patches/moz-user-dir-for-xre-profiles: fix xre dir provider to + honour MOZ_USER_DIR + * debian/patches/ubuntu-mail-app-xre-name: drop old nsXREAppData tweak to + use .mozilla-thunderbird as profile directory + * debian/patches/syspref-folder-support: add syspref folder support + * debian/patches/reply-to-list-support: port reply-to-list-support to 2.0 + branch + * debian/patches/series: update quilt patch series accordingly + + -- Alexander Sack Mon, 23 Apr 2007 13:15:00 +0200 + +thunderbird (1.99.rc1+2.0-1) feisty; urgency=low + + * branch firefox-trunk package for 2.0 thunderbird package + * debian/control.in, debian/control: add transition packages: + mozilla-thunderbird, mozilla-thunderbird-dev; disable dom-inspector + package as there is nearly no hope that it ever will get maintained + upstream again. + * debian/rules: remove inspector extension from configure; add excludes + to dh_install of thunderbird and thunderbird-dev package: + - + DEB_DH_INSTALL_ARGS_thunderbird := -Xgnome -Ximgicon -Xmozlibthai + DEB_DH_INSTALL_ARGS_thunderbird-dev := -Xnspr -Xnss + + -- Alexander Sack Wed, 18 Apr 2007 13:35:34 +0200 + +firefox-trunk (2.99+2cvs20070328-0ubuntu0) feisty; urgency=low + + * update upstream cvs + + -- Alexander Sack Wed, 28 Mar 2007 11:00:00 +0200 + +firefox-trunk (2.99+1-3.0a.20070201-0ubuntu0) feisty; urgency=low + + * package firefox 3 preview + * rewrite packaging, make use of cdbs with quilt patch + system. + + imported initial patches + + -- Alexander Sack Thu, 22 Feb 2007 09:00:00 +0200 + +firefox (2.0.0.1+1-0ubuntu2) feisty; urgency=low + + * browser/app/Makefile.in: link firefox-bin with + --no-as-needed again. (regression from + 2.0.0.1+1-0ubuntu1) + * browser/components/feeds/src/FeedWriter.js: fix + RSS preview/subscription for flat chrome + (Closes lp#61182) + * debian/rules: set BUILD_OFFICIAL and MOZILLA_OFFICIAL environment + so build gets a proper BUILD_ID (Closes LP#). + + -- Alexander Sack Mon, 19 Feb 2007 12:45:00 +0100 + +firefox (2.0.0.1+1-0ubuntu1) feisty; urgency=low + + * repackage with new upstream mozilla.org and split up patches + into distinct feature patches available at + http://people.ubuntu.com/~asac/firefox-patches/ + * make use of original source tarball as distributed from + ftp.mozilla.org + * debian/rules: use --enable-official-branding to produce + official firefox branding; remove icons in debian/ dir; + add more garbage cleanup + * debian/firefox.links: /usr/share/pixmaps/firefox.png and + usr/share/pixmaps/mozilla-firefox.png now link to + usr/share/firefox/icons/mozicon128.png + * drop FeedWriter.js patch, no rational available. + * xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp, + xpcom/reflect/xptcall/src/md/unix/Makefile.in, + xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp, + xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_m68k.cpp, + xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s, + configure.in, config/rules.mk, security/coreconf/Linux.mk: + drop debian architecture patches for + not ubuntu platforms + * debian/control: taking over maintainership + * configure.in: update hidden visibility patch from bugzilla + * configure.in: drop + * Makefile.in: drop explicit export of nss as build system is not + broken anymore + * browser/app/Makefile.in: drop linker tweaks for now. + * browser/app/profile/firefox.js: drop override for homepage + * browser/locales/en-US/chrome/branding/brand.properties: drop further + branding hacks not needed anymore + * browser/components/search/nsSearchService.js: drop not needed + official browser hacks + * prefs-size.diff: removed garbage file from source + + -- Alexander Sack Wed, 15 Feb 2007 23:15:00 +0100 + +firefox (2.0.0.1+0dfsg-0ubuntu2) feisty; urgency=low + + * Build using hunspell instead of myspell. + - debian/control: Build-depend on libhunspell-dev instead of libmyspell-dev. + - config/autoconf.mk.in: Add MOZ_MYSPELL_CFLAGS. + - extensions/spellcheck/myspell/src/Makefile.in: Use MOZ_MYSPELL_CFLAGS. + - extensions/spellcheck/myspell/src/mozMySpell.h: Include hunspell.cxx + instead of myspell.cxx. + - configure.in, configure: Overwrite myspell detection with hunspell. + + -- Matthias Klose Thu, 18 Jan 2007 11:57:14 +0000 + +firefox (2.0.0.1+0dfsg-0ubuntu1) feisty; urgency=low + + * New upstream security update: + - CVE-2006-6507, MFSA 2006-76: XSS using outer window's Function object. + - CVE-2006-6506, MFSA 2006-75: RSS Feed-preview referrer leak. + - CVE-2006-6504, MFSA 2006-73: SVG Processing Remote Code Execution. + - CVE-2006-6503, MFSA 2006-72: XSS by setting img.src to javascript: URI. + - CVE-2006-6502, MFSA 2006-71: LiveConnect crash finalizing JS objects. + - CVE-2006-6501, MFSA 2006-70: Privilege escallation using watch point. + - CVE-2006-6497, CVE-2006-6498, CVE-2006-6499, MFSA 2006-68: Crashes + with evidence of memory corruption. + * debian/rules: use original upstream icons (Closes LP#68180). + * debian/debsearch.src: make feisty the default debsearch target. + * browser/base/content/utilityOverlay.js: change Launchpad translation/help + pages for Feisty. + + -- Kees Cook Thu, 21 Dec 2006 09:51:22 -0800 + +firefox (2.0+0dfsg-0ubuntu3) edgy; urgency=low + + * Patch from upstream CVS to fix RSS preview/subscription, thanks to Mike + Connor and Martin Jürgens (Closes: LP#61182) + + -- Matt Zimmerman Mon, 23 Oct 2006 10:20:25 +0100 + +firefox (2.0+0dfsg-0ubuntu2) edgy; urgency=low + + * uudecode debsearch.gif too. Fixes FTBFS + * Make edgy the default debsearch target. Closes: Malone: #61687 + + -- Tollef Fog Heen Mon, 23 Oct 2006 08:52:11 +0200 + +firefox (2.0+0dfsg-0ubuntu1) edgy; urgency=low + + * Bump version to 2.0 (no upstream changes from rc3) + * browser/components/search/nsSearchService.js + - Set MOZ_OFFICIAL to "official", distributionID to "com.ubuntu" + * debian/branding: new subdirectory with images + * debian/rules: + - build: uudecode and substitute images in source tree, use debian/branding/icon64.png + instead of debian/firefox.png + - clean: restore images in source tree, remove uudecoded versions + + -- Matt Zimmerman Fri, 20 Oct 2006 15:56:42 -0700 + +firefox (1.99+2.0rc3+dfsg-0ubuntu1) edgy; urgency=low + + * New upstream version 2.0rc3, UVF exception approved by Matt Zimmerman. + * configure: Fix bashism to let the gcc visibility=hidden bug detection + work. + * configure{,.in}: Change MOZ_APP_DISPLAYNAME from 'BonEcho' to 'Firefox' to + make UserAgent string work with web sites which evaluate it. + * browser/base/content/utilityOverlay.js: Open the Launchpad + translation/help pages for Edgy, not Dapper. + * For the sake of automatic vulnerability tracking: All 1.5.0.x and earlier + vulnerabilities were fixed in the 2.0 branch as well: + CVE-2005-0752 CVE-2005-1531 CVE-2005-1532 CVE-2005-2114 CVE-2006-0749 + CVE-2006-1731 CVE-2006-1732 CVE-2006-1733 CVE-2006-1734 CVE-2006-1735 + CVE-2006-1736 CVE-2006-1737 CVE-2006-1738 CVE-2006-1739 CVE-2006-1740 + CVE-2006-1741 CVE-2006-1742 CVE-2006-1790 CVE-2006-2775 CVE-2006-2776 + CVE-2006-2777 CVE-2006-2778 CVE-2006-2779 CVE-2006-2780 CVE-2006-2782 + CVE-2006-2783 CVE-2006-2784 CVE-2006-2785 CVE-2006-2786 CVE-2006-2787 + CVE-2006-2788 CVE-2006-3113 CVE-2006-3677 CVE-2006-3801 CVE-2006-3802 + CVE-2006-3803 CVE-2006-3805 CVE-2006-3806 CVE-2006-3807 CVE-2006-3808 + CVE-2006-3809 CVE-2006-3810 CVE-2006-3811 CVE-2006-3812 CVE-2006-4253 + CVE-2006-4340 CVE-2006-4565 CVE-2006-4566 CVE-2006-4567 CVE-2006-4568 + CVE-2006-4569 CVE-2006-4571 + + -- Martin Pitt Thu, 19 Oct 2006 09:28:15 +0200 + +firefox (1.99+2.0rc2+dfsg-0ubuntu3) edgy; urgency=low + + * debian/firefox-runner: Disable Pango if a Sinhala locale is present. LP + 66270. + + -- Colin Watson Sun, 15 Oct 2006 20:29:26 +0100 + +firefox (1.99+2.0rc2+dfsg-0ubuntu2) edgy; urgency=low + + * Delete /usr/lib/firefox/components/compreg.dat in the postinst. + This is a partial workaround for LP 30791. + + -- Ian Jackson Thu, 12 Oct 2006 12:19:11 +0100 + +firefox (1.99+2.0rc2+dfsg-0ubuntu1) edgy; urgency=low + + * New upstream version 2.0rc2. + * Fix/workaround for epiphany GtkSocket lifetype crash: + apply patch id=241087 from Mozilla Bugzilla #241535 to fix LP #63814. + * Change application name to `Firefox', as requested by mdz. + Files changed: + - browser/locales/en-US/chrome/branding/brand.dtd + - browser/locales/en-US/chrome/branding/brand.properties; + New values: + - brandShortName and brandFullName: `Bon Echo' => `Firefox' + - vendorShortName: `Mozilla' => `Ubuntu' + * Make preferences dialogue fit again (bah!). + + -- Ian Jackson Tue, 10 Oct 2006 18:49:32 +0100 + +firefox (1.99+2.0b2+dfsg-1ubuntu3) edgy; urgency=low + + * Remove /usr/lib/mozilla-thunderbird from the LD_LIBRARY_PATH + if we find it there. Workaround for LP 57923. + * Remove pocket name (eg `-security') from distribution identifier in + the browser user agent string. LP 55289. + + -- Ian Jackson Tue, 3 Oct 2006 19:01:34 +0100 + +firefox (1.99+2.0b2+dfsg-1ubuntu2) edgy; urgency=low + + * Ship xpidl et al, in firefox-dev. Relates to Debian #362190. + Fixes Malone #61160. + + -- Ian Jackson Thu, 21 Sep 2006 16:33:50 +0100 + +firefox (1.99+2.0b2+dfsg-1ubuntu1) edgy; urgency=low + + * Merged from Debian unstable; new upstream version. + * Remaining differences between + Debian and Ubuntu in no particular order: + - Build libnspr and libnss and corresponding -dev packages from this + source package. Plus changes to make these libs build nicely. + - Various changes to preferences, default bookmarks and search engines. + - Support for `Get Help Online' and `Translate This Application'. + - Size changes for various dialogue boxes to make the contents fit. + - Downloads go to separate `Desktop' folder by default. + - Fix some underquoted m4 arguments. + - Minor changes in directories, symlinks and debian/control + to cope with Ubuntu and Debian's different histories. + - disable File / Import (wizard is nonfunctional). + Malone #28563, Debian #350599, Mozilla Bugzilla 117844. + - Change `Latest Headlines' to `Latest BBC Headlines' to properly + disclose the source up front, and use a corresponding RSS URL. + - Default for FIREFOX_DSP is none. + - Pango support is enabled only if an installed locale seems to need + it. + - Note in README.Debian about how to run xpcshell. + - Disable xprint. + - No build dependency on libxp-dev; build-depend on zip instead. + - Various icon changes. + - Some currently-unused directory merging code in firefox.preinst. + - Less detail in the user agent string. + - Belt-and-braces removal for some cruft left over by some versions of + the Mozilla build system. + - Better firefox.menu entry (says `Firefox Web Browser'). + - Build dynamically linked, since in Ubuntu embedders use firefox. + - EbmedWindow::GetVisibility bugfix, Malone 40320, upstream 312998. + - Pass FC_ANY_METRICS to Fontconfig where appropriate. + - Extensive Thai language patch. + - Print in serif by default even though default display is sans. + - Some fixes to the (upstream-unused) nss makefiles. + - Strip PostScript/ from printer names. + - Better message about updates of read-only extension. + - Include pointer to the Gecko Runtime (GRE registration). + - Prevent websites from disabling context menus. + All of these changes are fully documented in the changelog below. + Please see those changelog entries for full details. Much historical + information about changes either taken up by Debian or upstream, or + dropped by us, is retained in this changelog. + + -- Ian Jackson Wed, 13 Sep 2006 16:40:06 +0100 + +firefox (1.99+2.0b2+dfsg-1) experimental; urgency=low + + * New upstream beta release. + + * extensions/inspector/build/src/Makefile.in, + extensions/inspector/build/src/inspector.pkg, + extensions/inspector/build/src/nsInspectorModule.cpp: Removed, the problem + was lying in debian/rules. /me goes hiding under a rock. + * layout/inspector/public/Makefile.in: Reverted previous changes. + * debian/rules: Don't exclude inspector files when dh_installing the firefox + package. We need the inspector.xpt file from the components directory. The + files for the dom-inspector package are already excluded from the + firefox.install file anyway. + * debian/firefox-dom-inspector.install, + debian/firefox-dom-inspector.links: Simplified. + * debian/control: + + Turn firefox-dom-inspector into an arch: all package, since the binary + component has been merged into the firefox binary. + + Adjust dependencies for binNMU safety. + * xpcom/reflect/xptcall/src/md/unix/Makefile.in, configure.in, configure: + Use ${host_cpu} instead of uname -m so that firefox can safely build on + s390x with a s390 target, and on amd64 with an x86 target. + * uriloader/exthandler/unix/nsGNOMERegistry.cpp, + uriloader/exthandler/unix/nsGNOMERegistry.h, + uriloader/exthandler/unix/nsOSHelperAppService.cpp, + uriloader/exthandler/unix/nsMIMEInfoUnix.cpp, + uriloader/exthandler/unix/nsMIMEInfoUnix.h: Adapted patch from bz#273524 to + make helper applications with parameters work. (Closes: #355511) + * debian/copyright: Adjusted with updated information for firefox 2.0, which + is now properly tri-licensed \o/. (Closes: #330295) + * debian/rules: Install the MPL file taken from the upstream LICENSE file. + + -- Mike Hommey Fri, 1 Sep 2006 08:36:26 +0200 + +firefox (1.5.dfsg+1.5.0.6-3) unstable; urgency=low + + * browser/app/Makefile.in: Workaround to force link the xpcom library to + the firefox binary despite -Wl,--as-needed in the LDFLAGS. + (Closes: #378667) + * debian/firefox.install: Don't install xpt_link, xpt_dump, xpidl, + xpicleanup, xpcshell nor regxpcom. They are of no use to firefox users and + are provided with xulrunner anyway. (Closes: #362190) + + -- Mike Hommey Sun, 20 Aug 2006 19:49:25 +0200 + +firefox (1.5.dfsg+1.5.0.6-2) unstable; urgency=low + + * debian/firefox.desktop: + - Polish translation from Ian Jackson by way of an Ubuntu user. + (Closes: #382079) + - Patch from Ian Jackson to stop claiming dav:// URLs when firefox + doesn't understand them. (Closes: #382080) + * editor/libeditor/text/nsPlaintextEditor.cpp: Apply patch from + bz#271815 to fix OverTheSpot mode used by many Asian language input + modules. (Closes: #379935) + + -- Eric Dorland Tue, 15 Aug 2006 00:09:55 -0400 + +firefox (1.5.dfsg+1.5.0.6-1) unstable; urgency=low + + * New upstream release. + + -- Eric Dorland Thu, 3 Aug 2006 13:17:45 -0400 + +firefox (1.5.dfsg+1.5.0.5-1) unstable; urgency=high + + [ Eric Dorland ] + * New upstream release. Urgency high because it fixes MFSA 2006-44 to + MFSA 2006-56 excluiding MFSA-2006-49. (Closes: #380463) + + [ Mike Hommey ] + * debian/firefox.prerm: Remove /usr/lib/firefox/.autoreg instead of + /var/lib/firefox/.autoreg. + * browser/app/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf.in: + Removed very old and now useless changes. + * xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp: Removed + useless new line that showed up in the diff.gz. + + -- Eric Dorland Sun, 30 Jul 2006 17:08:38 -0400 + +firefox (1.99+2.0b1+dfsg-1) experimental; urgency=low + + * New upstream beta targetted at experimental: + - Much better search plugins handling. They can be added and removed at + will, and even better, system-wise search plugins can be ignored at the + profile level. (Closes: #352195, #320957, #296425, #308005) + * browser/components/shell/src/Makefile.in: Correctly install the + setDefaultBrowser component. + * config/rules.mk: Don't install extensions in the chrome. + * debian/firefox.links: Link /usr/lib/firefox/dictionaries to + /usr/share/myspell/dicts. + * config/autoconf.mk.in, configure, configure.in: Add the + --enable-system-myspell argument to configure to use the system myspell + library. + * extensions/spellcheck/myspell/src/Makefile.in: Use the system myspell + library when asked to. + * debian/rules: + - Add --enable-system-myspell to configure call. + - Do shlibsign libfreebl's (there can be several depending on the arch). + * debian/control: Add libmyspell-dev to build dependencies. + * browser/components/microsummaries/src/Makefile.in, config/Makefile.in: + Add rules so that make clean cleans everything. + * allmakefiles.sh: Removed references to nonexisting Makefiles in + extensions/xmlextras/base. + * configure, configure.in: Apply patches from bz#334866, bz#319012 and + bz#335949 + fixups to workaround gcc visibility hidden bugs, especially + #331460 (an instance of which is actually still present in C++, + see gcc#26905). + * extensions/inspector/build/src/Makefile.in, + extensions/inspector/build/src/inspector.pkg, + extensions/inspector/build/src/nsInspectorModule.cpp: Added missing files + for the DOM Inspector component. + * extensions/inspector/build/src/Makefile.in, + layout/inspector/public/Makefile.in: Adapted so that the DOM Inspector + component would build correctly and the xpt would be installed in + the extensions directory. + * extensions/reporter/Makefile.in: Install missing reporter's preference. + + -- Mike Hommey Fri, 21 Jul 2006 07:05:25 +0200 + +firefox (1.5.dfsg+1.5.0.4-3) unstable; urgency=low + + [ Eric Dorland ] + * debian/control: + - Fix silly typo of binutils. (Closes: #378582) + - Standards-Version to 3.7.2.1. + + [ Mike Hommey ] + * debian/rules: + - Use a specific LD_LIBRARY_PATH at link time so that we don't need to + link against indirect dependencies. (Closes: #378378) + - Run shlibsign after the files are stripped so that it is accurate and + FIPS mode can correctly work. + - Removed old commented out OPTFLAGS that were kept in case gcc 4.0 did + no better than gcc 3.x. + - Removed old exported variables that are useless nowadays. + - Removed dh_strip call in binary-indep. Who wants to strip + arch-independant files ;) + * debian/presubj: Added notes about plugins and crash reports. + * security/manager/Makefile.in, security/nss/cmd/shlibsign/Makefile: + Don't build nor install the .chk files but still build shlibsign. + * debian/firefox.install: Don't install .chk files since we generate them + after dh_strip. + * security/nss/cmd/shlibsign/manifest.mn: Don't build in shlibsign/mangle. + It doesn't build anyway. + + -- Eric Dorland Wed, 19 Jul 2006 23:56:22 -0400 + +firefox (1.5.dfsg+1.5.0.4-2) unstable; urgency=low + + [ Eric Dorland ] + * netwerk/base/public/security-prefs.js: Disable SSLv2 by default. I + thought the weak cipher warning took care of this. (Closes: #371153) + * debian/firefox-runner: Simplify the dsp autodetection and add aoss to + the roster. (Closes: #372848) + * firefox-restart-required.update-notifier, firefox.postinst, + firefox.install: Add update-notifier to indicate that firefox needs to + be restarted on upgrade. Based on Ian Jackson's patch, but reworked a + little. Also with a bad French translation. Translators, assemble! + (Closes: #365865) + * config/rules.mk, debian/control: Apply patch from Thiemo Seufer to + remove mips -xgot hack and build depend on the appropriate binutils on + mips and mipsel. (Closes: #374372) + * debian/presubj, debian/README.Debian: Add a bit more information about + disabling Pango, which often seems to be the source of problems. + * debian/firefox-runner: + - Print out MOZ_NO_REMOTE in verbose mode. + - Fix some unreachable logic, Thanks Daniel Jacobowitz. + + [ Mike Hommey ] + * debian/rules: + - Fix for Gecko date extraction from client.mk. + - Disabled strict aliasing from optimized builds. + - Added -Wl,--as-needed to the LDFLAGS, so that we don't get indirect + libraries linked. + * config/static-config.mk: Add MOZ_XFT_LIBS to STATIC_EXTRA_LIBS. It used to + get linked as a side effect of linking to indirect libraries, but should + be linked directly since Xft symbols are used. + * debian/firefox-restart-required.update-notifier: Fixed the french + translation. ;) + * content/html/content/src/nsGenericHTMLElement.cpp, + content/html/content/src/nsHTMLInputElement.cpp, + dom/src/base/nsGlobalWindow.cpp: Fixed crasher and potential crashers. + Reported bz#343953. + + -- Eric Dorland Sun, 9 Jul 2006 02:37:28 -0400 + +firefox (1.5.dfsg+1.5.0.4-1) unstable; urgency=low + + * The "Post-DebConf Hangover" release. + + [ Eric Dorland ] + * New upstream release. Fixes various security issues. MFSA 2006-31 to + MFSA 2006-43, excluding MFSA 2006-40. + * debian/control: + - Standards-Version to 3.7.2.0. + - Set priority of -dbg to extra and Section to devel. + * gfx/src/gtk/nsFontMetricsPango.cpp, + intl/lwbrk/src/nsJISx4501LineBreaker.cpp, + intl/unicharutil/util/nsUnicharUtils.h, + intl/unicharutil/util/nsUnicharUtils.cpp, + layout/generic/nsTextFrame.cpp: Patch from Jurij Smakov (from + bz#161826) to fix alignment issues on sparc64. (Closes: #354725) + + [ Mike Hommey ] + * Applied distclean patch from xulrunner (in + debian/patches/01_distclean.dpatch), except for the javaxpcom stuff we + don't build anyway. + * browser/app/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}, + config/static-rules.mk: More cleaning for firefox. + * nsprpub/configure: Apply change to nsprpub/configure.in. + (Closes: #350616) + * gfx/src/gtk/nsFontMetricsPango.cpp: Some more changes so that it + actually builds without errors, and use PR_Malloc and PR_Free instead + of malloc and free. + + -- Eric Dorland Fri, 2 Jun 2006 12:13:18 -0400 + +firefox (1.5.dfsg+1.5.0.3-2) unstable; urgency=low + + * debian/firefox.desktop: Add spanish translation, just in time for + DebConf 6! Thanks Ian Jackson. (Closes: #365870) + * debian/firefox-runner: Actually apply the patch from Morita Sho in + #364566. I'm a moron. (Closes: #365956, #365960) + * debian/control: Standards-Version to 3.7.1.0. Go policy team! + + -- Eric Dorland Thu, 4 May 2006 01:38:18 -0400 + +firefox (1.5.dfsg+1.5.0.3-1) unstable; urgency=critical + + * The "secure enough for ya!" release. + * New upstream release. Contains security fixes, hence severity + critical. + - Fixes CVE-2006-1993 aka MFSA 2006-30. (Closes: #364810) + + [ Mike Hommey ] + * security/manager/Makefile.in, debian/firefox.install: Build and + install the .chk file again. That will make the FIPS mode work again. + * debian/control: Bumped Standards-Version to 3.7.0.0. No changes. + * debian/rules: Fix the navigator.ProductSub value for dumb scripts. + Closes: #364640, #365099. We now use the date of the client.mk file, + which is likely to be the closest value to the release date, instead of + useless build date. + Add the debian version after the firefox version string. + * debian/rules: Use dpkg-architecture to find out the host and build that + we want to pass to the configure script. (Closes: #365738) + + [ Eric Dorland ] + * debian/firefox-runner: + - Quote the APPLICATION_ID variable to handle profiles with a space + in the name. Inspired by Morita Sho's patch. (Closes: #364566) + - echo MOZ_DISABLE_PANGO on verbose. + * debian/rules: It's baaaackkk. Reenable xprint. + + -- Eric Dorland Wed, 3 May 2006 00:32:49 -0400 + +firefox (1.5.dfsg+1.5.0.3-0ubuntu3) dapper; urgency=low + + * Thai-related crash fix (Malone 45395): + - nsCopySupport.cpp, nsCopySupport::HTMLCopy: + do not crash if htmlConverter->Convert fails. + - nsHTMLFormatConverter.cpp, nsHTMLFormatConverter::Convert: + properly report failure if dataStr.IsEmpty. + - nsJISx4501LineBreaker.cpp: fix printf(stderr -> fprintf. + * Add Polish translation for firefox.desktop (Malone 45447). + Thanks to contribution from Tomasz Dominikowski. + * Do not attempt to merge /usr/lib/mozilla-firefox and /usr/lib/firefox + and make the former a link to the latter; this is unfortunately + error-prone and makes more problems than it solves. + Fixes Malone 44487; regresses the plugins directory confusion bug. + * Include MFSA and CVE numbers in changelog entry for 1.5.dfsg-1. + + -- Ian Jackson Tue, 23 May 2006 17:45:30 +0100 + +firefox (1.5.dfsg+1.5.0.3-0ubuntu2) dapper; urgency=low + + * Fix memory leak in large clipboard handling. Malone 41093. + Mozilla Bugzilla 289897; applied attachments 218749, 218753. + * Provide symlink /usr/lib/mozilla-firefox -> /usr/lib/firefox + (and shuffle stuff across if both directories exist). + * Remove update-notifier `restart required' on removal so that if you + remove firefox you're no longer asked to restart it. Malone 36739. + * Increase size of prefs window explicitly. Malone 43528. + * Suppress the error if /var/lib/locales/supported.d/* can't be read + (probably because it doesn't exist). If you get EIO or EACCES or some + such then having pango mysteriously disabled will be the least of your + worries. Malone 44016. + * Really use firefox_1.5.dfsg+1.5.0.3.orig.tar.gz from Debian. + + -- Ian Jackson Fri, 12 May 2006 19:20:30 +0100 + +firefox (1.5.dfsg+1.5.0.3-0ubuntu1) dapper; urgency=low + + * New upstream version, 1.5.0.3, security/stability fix from upstream: + MFSA 2006-30, CVE-2006-1993: Deleted + object reference when designMode="on" + This package is based on Debian's firefox_1.5.dfsg+1.5.0.3.orig.tar.gz + but has none of the corresponding Debian changes. + + -- Ian Jackson Wed, 10 May 2006 12:13:30 +0100 + +firefox (1.5.dfsg+1.5.0.2-3) unstable; urgency=low + + * debian/rules, debian/control: Build the -dbg package again. + * debian/firefox.1: Fix some incorrect references to mozilla. Thanks + Loïc Minier. (Closes: #364101) + * debian/firefox-runner: Patch from Mikhail Gusarov to be able to use + Network Audio Server's dsp wrapper. (Closes: #363124) + * debian/firefox.install: Fix screwed up path to firefox.xpm. (Closes: + #364359) + * debian/README.Debian: Document that firefox doesn't allow connections + on certain ports. Thanks W. Borgert. (Closes: #362785) + + -- Eric Dorland Sun, 23 Apr 2006 22:41:15 -0400 + +firefox (1.5.dfsg+1.5.0.2-2) unstable; urgency=critical + + * The "ftp-master's aren't my friends today" release. + * debian/rules, debian/control: Don't build the -dbg package for now, to + get around NEW queue processing. + + -- Eric Dorland Thu, 20 Apr 2006 22:33:18 -0400 + +firefox (1.5.dfsg+1.5.0.2-1) unstable; urgency=critical + + [ Eric Dorland ] + * New upstream release. Contains security fixes, hence severity + critical. + - Fixes the following vulnerabilites (Thanks Alexander Sack for + compiling the list): CVE-2006-1724, CVE-2006-0884, + CVE-2006-1730, CVE-2006-1729, CVE-2006-1728, CVE-2006-1727, + CVE-2006-1045, CVE-2006-0748, CVE-2006-1726, CVE-2006-1725, + CVE-2005-2353. (Closes: #362656) + * debian/firefox-runner: Patch from Paul Collins to fix some lingering + ProfileManager launch issues. (Closes: #356250) + * browser/components/preferences/privacy.xul, + browser/locales/en-US/chrome/browser/preferences/preferences.dtd: + Patch from Ian Jackson to make the preferences window bigger for + people with high rez displays. His changelog entry reads: + * Make Preferences window not chop off various elements: + - specify a width of 50em instead of 42em + - do not specify a height + - add another to the bottom of privacy.xul's prefpane. + I have no idea why this is necessary :-(. + Malone 36985. + * configure.in, configure: Small typo in configure.in that wasn't + setting TARGET_XPCOM_ABI properly and breaking binary extensions on + some arches. (Closes: #359228) + + [ Mike Hommey ] + * debian/rules: Disable elf-dynstr-gc, which is pretty useless nowadays. + * security/coreconf/rules.mk: Fix perl code that got broken by newer make. + Taken from bz#325148. + * browser/app/Makefile.in: Apply patch from bz#314927 to install default.xpm + in the correct place. + * debian/rules, debian/firefox.dirs, debian/firefox.install: Updated to fit + this change. + * security/coreconf/rules.mk: Force use of the -g flag in the CFLAGS. + + -- Eric Dorland Sun, 16 Apr 2006 18:40:02 -0400 + +firefox (1.5.dfsg+1.5.0.2-0ubuntu2) dapper; urgency=low + + * Increase sizes of various dialogue boxes so that all of the contents + fit. Malone 26225, 36985, and probably others. + * Set MOZ_DISABLE_PANGO=1 to disable pango, unless some locale is + selected as supported which would need pango for rendering; the + default can be overridden by setting MOZ_DISABLE_PANGO to 0 or 1. + Malone 32561 (workaround). + * Use update-notifier to request a firefox restart. Malone 36739. + * Added Spanish translation to firefox.desktop. + Malone 39972. Thanks to Rocco Stanzione for the patch. + * Add a couple of missing trailing newlines. + Malone 39972 again. Thanks Rocco Stanzione for the report. + * EbmedWindow::GetVisibility bugfix, Malone 40320, upstream 312998, + thanks to chpe for the patch and discussion. + * Add FC_ANY_METRICS set to FcTrue to all patterns that are going to be + used for finding (rather than enumerating) fonts. Malone 42559. + + -- Ian Jackson Tue, 2 May 2006 18:59:32 +0100 + +firefox (1.5.dfsg+1.5.0.2-0ubuntu1) dapper; urgency=low + + * New upstream version, 1.5.0.2. + Described as `stability and security fixes' by upstream but many + changes are included and producing a complete list is infeasible :-(. + Fixes are known to be included for: + - MFSA 2006-29, CVE-2006-1725: Spoofing with translucent windows + - MFSA 2006-28, CVE-2006-1726: Security check of + js_ValueToFunctionObject() can be circumvented + - MFSA 2006-27, CVE-2006-0748: Table Rebuilding Code Execution + Vulnerability + - MFSA 2006-25, CVE-2006-1727: Privilege escalation through Print Preview + - MFSA 2006-24, CVE-2006-1728: Privilege escalation using + crypto.generateCRMFRequest + - MFSA 2006-23, CVE-2006-1729: File stealing by changing input type + - MFSA 2006-22, CVE-2006-1730: CSS Letter-Spacing Heap Overflow + Vulnerability + - MFSA 2006-20, CVE-2006-1529, CVE-2006-1530, CVE-2006-1531, + CVE-2006-1723, CVE-2006-1724: Crashes with evidence of memory + corruption. + This package is based on Debian's firefox_1.5.dfsg+1.5.0.2.orig.tar.gz + but has none of the corresponding Debian changes. + + -- Ian Jackson Wed, 26 Apr 2006 16:53:22 +0100 + +firefox (1.5.dfsg+1.5.0.1-5) unstable; urgency=low + + [ Mike Hommey ] + * debian/rules: + - Add -g to the build flags when building with DEB_BUILD_OPTIONS=nostrip. + If we ask for nostrip, we want the debugging + symbols, right? ;) + - Changed the way we identificate ourselves in vendor.js. + * layout/build/Makefile.in, layout/build/nsLayoutModule.cpp: Remove useless + useragent setter at startup so that general.useragent.product and + general.useragent.productSub set in our vendor.js preference file work at + startup time. + * security/coreconf/Linux.mk: + - Patch from Martin Michlmayr for mips64 builds. + - Don't use x86 as CPU_ARCH when building on an unsupported architecture. + * security/manager/Makefile.in, security/nss/lib/ckfw/builtins/Makefile, + security/nss/lib/manifest.mn: Don't build the stuff we don't need, and + dynamically link libnssckbi to both libplc4 and libplds4 instead of + linking statically. + * debian/firefox.postinst, debian/firefox.prerm, + debian/firefox-gnome-support.postinst, debian/firefox-gnome-support.prerm: + Touch a .autoreg file at configure time, or removal of gnome-support and + remove it with the package. This will trigger autoregistration of the + components if the compreg.dat and xpti.dat files are older than the + .autoreg file. We used to remove compatibility.ini for that reason, but + stopped doing that because firefox was supposed to do that correctly, + which actually only correctly works on new upstream versions, not new + debian revisions, or installation of gnome-support. + * xpfe/components/killAll/Makefile.in: Correctly install the killAll + component. + + [ Eric Dorland ] + * debian/control: + - Set Section of firefox-gnome-support and + mozilla-firefox-gnome-support to gnome. + - Standards-Version to 3.6.2.2. + - debhelper build-dep to >= 5.0. + - Add firefox-dbg package. + * debian/compat: Set to 5. + * debian/rules: + - Remove silly CVS tarball cleanup target. + - Add arch-independant debhelper calls, and make other debhelper + calls arch-dependent. + - Add --dbg-package=firefox-dbg to dh_strip call. + - Always build with the -g flag. (Based on a change Mike made) + - Patch from Andreas Jochens to use -mminimal-toc when building on + ppc64. (Closes: #361035) + - Use --disable-strip, --disable-strip-libs in configure parameters. + Thanks Ian Jackson. + - Use .upstream instead of .orig to make it more clear and not + confuse the clean target. Thanks Ian Jackson. (Closes: #362186) + - Disable xprint support for now, while the Xorg 7 transition sorts + itself out. Should be reenabled next release. + * debian/firefox.xpm: Add more Debian compliant menu icon. + * debian/firefox.install, debian/rules: Install new Debian compliant + icon. + * debian/firefox.desktop: Add StartupNotify=true for pretty waiting + cursor. Thanks Sven Arvidsson. (Closes: #361527) + * debian/firefox-dom-inspector.preinst, + debian/firefox-dom-inspector.links, + debian/firefox-dom-inspector.install: Install non-architecture + specific bits of the inspector into /usr/share/firefox. + * debian/firefoxrc: Disable the dsp wrapper by default. esddsp is just + too buggy to allow this to continue. May reenable later if they clean + up their act. Leaving the bugs open for now. + * debian/firefox.NEWS: + - Document the dsp wrapper changes. + - Remove old mozilla-firefox entries. + * debian/firefox.1: Fix typo of firefox, thanks Andrew Rendle. (Closes: + #362413) + * debian/firefox.install: We don't get .chk files anymore for some + reason. + + -- Eric Dorland Fri, 14 Apr 2006 15:52:41 -0400 + +firefox (1.5.dfsg+1.5.0.1-4) unstable; urgency=low + + [ Mike Hommey ] + * debian/firefox-runner, debian/firefox.1: Patch from Ian Jackson to + make -P, -CreateProfile and -ProfileManager options correctly work + again, and improve the manual page. (Closes: #356250) + * debian/firefox.desktop: + - Fix trivial syntax problems. (Closes: #356263) + - Added Japanese and Korean translations. + * debian/firefox.dirs: Removed remainings of the time when we had a file + in /usr/sbin. (Closes: #356268) + * debian/firefox-gnome-support.prerm, + debian/firefox-gnome-support.postinst: Removed bashisms. (Closes: + #349946) + * debian/README.Debian: + - Replaced the bug reporting information by an invitation to read + /usr/share/bug/firefox/presubj. (Closes: #356269) + - Changed the heading to "Firefox for Debian". + + [ Eric Dorland ] + * debian/firefox-gnome-support.postinst, + debian/firefox-gnome-support.prerm: Add forgotten #DEBHELPER# token. + + -- Eric Dorland Sun, 12 Mar 2006 21:34:14 -0500 + +firefox (1.5.dfsg+1.5.0.1-3) unstable; urgency=low + + [ Eric Dorland ] + * debian/control: Use strict dependencies for the transition packages, + no reason a transition package should be upgraded before the real + package. + * debian/README.Debian: Fix all references to + /etc/mozilla-firefox/mozilla-firefoxrc. (Closes: #351956) + * debian/firefox.desktop: Patch from Ian Jackson to add more + translations and more inline with the GNOME HIG. (Closes: #351807) + * widget/src/gtk2/nsWindow.cpp: Apply new ignore extended mouse buttons + patch from Peter Colberg (Closes: #351972) + * debian/firefox.1: Lower case first letter of -ContentLocale. + * debian/firefox.1, debian/firefox-runner: Add -no-remote switch to turn + on MOZ_NO_REMOTE. Use it for profile related commands as + well. (Closes: #351717, #344849) + * wikipedia.gif.uu, wikipedia.src, rules, firefox.install: Patch from + Ian Jackson to add wikipedia search engine. (Closes: #354107) + + [ Mike Hommey ] + * modules/libpref/src/init/all.js: Set default fonts for all languages to + serif, sans-serif and monospace. It might solve a lot of fonts problems. + * config/config.mk, config/make-jars.pl, configure.in, + security/nss/lib/fortcrypt/swfort/pkcs11/config.mk, + extensions/inspector/Makefile.in: Allow building without zip when + building flat chrome. + * configure: Ran autoconf accordingly to changes in configure.in. + * debian/control: Removed build dependency on zip. + * debian/rules: Build flat chrome. + * debian/firefox.install: Changed wildcards accordingly. + * config/rules.mk: + + Don't build chromelist.txt files. + + Fixed "jar" build so that inspector files don't get duplicated in the + extension directory. + + -- Eric Dorland Sun, 26 Feb 2006 11:45:15 -0500 + +firefox (1.5.dfsg+1.5.0.1-2) unstable; urgency=low + + [ Mike Hommey ] + * debian/firefox-runner: export MOZ_DISABLE_PANGO. (Closes: #351959) + * debian/README.Debian: changed reference to the rc file in /etc. + (Closes: #351956) + + [ Eric Dorland ] + * debian/firefox.preinst: Fix {}'s bashism. Thanks Jeff King. (Closes: + #351811) + * modules/libpref/src/init/all.js: Make print.postscript.print_command + space-safe. Thanks Ian Jackson. (Closes: #351809) + * debian/firefox-runner: Don't completely override + $MOZ_PLUGIN_PATH. Thanks Ian Jackson. (Closes: #351806) + + -- Eric Dorland Thu, 9 Feb 2006 01:23:35 -0500 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu12) dapper; urgency=low + + * Sponsored upload for Theppitak Karoonboonyanan + * Updated Thai word breaking patch: + - load `libthai.so.0' instead of `libthai.so'. + - print debug message only when DEBUG is defined. + - debian/control: Suggests libthai0 + + -- Michael Vogt Thu, 13 Apr 2006 13:25:14 +0200 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu11) dapper; urgency=low + + * Fix silly lack of [ ] quoting in AC_DEFUN use. + Malone 36659, Mozilla bugzilla 298457. + * Make Preferences window not chop off various elements: + - specify a width of 50em instead of 42em + - do not specify a height + - add another to the bottom of privacy.xul's prefpane. + I have no idea why this is necessary :-(. + Malone 36985. + * Fix broken UTF-8 in .desktop file (again). Malone 37779. + * Document how to use xpcshell in README.Debian. Malone 35333. + * Clarify updateReadOnlyMessage to refer to `system package manager' + which will help the misunderstanding in Malone 31284. + + -- Ian Jackson Wed, 12 Apr 2006 17:18:52 +0100 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu10) dapper; urgency=low + + * Generate `firefox-dbg' package with debugging symbols. + This involves changing debian/compat to 5, which should be safe. + * Fix Norwegian translation in firefox.desktop. (Malone 30603.) + * Fix trivial syntax problems in firefox.desktop. (Malone 33567.) + * Remove x-directory/webdav x-directory/webdav-prefer-directory + from MimeType list in desktop file. (Malone 35928.) + * Use `about.png.upstream' instead of `about.png.orig' is the saved + original version for the branding; *.orig tends to get clobbered. + + -- Ian Jackson Fri, 24 Mar 2006 18:49:46 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu9) dapper; urgency=low + + * added thai linebreaking support (thanks to Theppitak Karoonboonyanan) + + -- Michael Vogt Tue, 14 Mar 2006 15:16:52 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu8) dapper; urgency=low + + * debian/rules: + - renamed the idl directory to match the .pc name, + replace mozilla-firefox by firefox for firefox-config too + + -- Sebastien Bacher Mon, 13 Mar 2006 15:12:43 +0100 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu7) dapper; urgency=low + + * Pointing the .pc files to /usr/include/firefox is not enough, + better install the headers there too. + + -- Matthias Klose Sat, 11 Mar 2006 17:41:24 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu6) dapper; urgency=low + + * Replace Ubuntu Bugzilla bookmark with Launchpad's `Request + support with Ubuntu' ticket creation page. (Malone 28896.) + * Reinstate `Translate This Application' in Help menu, despite the fact + that Launchpad doesn't do this yet - you just get a page saying there + are no translations for Firefox. mdz assures us that this will be + done some time during dapper's service life. + * Make -P, -CreateProfile and -ProfileManager imply sensible + values for -a, and document -a in firefox(1). (Malone 31746.) + * Fix md5sum mismatch which causes spurious conffile prompt on + bookmarks.html. + * Set browser.startup.homepage_override.mstone to ignore, + to avoid the silly thing where the first time after the upgrade, + firefox looks like it has lost your home page because it is so keen to + tell you about the release notes. (Malone 33895.) + * Change `Latest Headlines' to `Latest BBC Headlines' to properly + disclose the source up front, and use a corresponding RSS URL. + * Revert the `you have chosen to open' dialogue, as discussed on + ubuntu-devel. + * Fix firefox-*.pc files to contain correct references to libs and + includes, just like the mozilla-*.pc files. (Malone 34200.) + + -- Ian Jackson Thu, 9 Mar 2006 19:56:58 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu5) dapper; urgency=low + + * Disable `Translate This Application' and don't try to have `Get Help + Online' translated because we don't know how to translate firefox: + https://launchpad.net/products/rosetta/+spec/rosetta-firefox-support + + -- Ian Jackson Fri, 24 Feb 2006 14:49:23 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu4) dapper; urgency=low + + * Disable (by default) the `you have chosen to open' dialogue box; + instead, we just take the default (which is to open with the + application from the Gnome MIME database). This behaviour is + controlled by browser.helperApps.defaultNoAsk.openFile. + + Bookmark, search and translation reference regression fixes: + * Restore `Translate This Application' and `Get Help Online' + * Add Ubuntu and Free Software links back to bookmarks + + Bookmark, search and translation references improvements: + * Add Wikipedia to search box. + * Remove `Quick searches' from bookmarks (these just replicate + entries from the search box, and are broken anyway). + + * Get rid of README.Ubuntu - the contents are now no longer relevant. + + -- Ian Jackson Thu, 23 Feb 2006 14:44:42 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu3) dapper; urgency=low + + * Move /usr/lib/libxpcom*.so etc. back to /usr/lib/firefox; avoids + clashes with other packages (eg mozilla). + * Add rpath setting for /usr/lib/firefox to all .pc files in + firefox-dev. This is suboptimal, but at least it allows programs + which use firefox-dev at compile-time to find firefox's .so's. + * Take some redundant and perhaps privacy-leaking information out + of the default User-Agent (Malone 30677). + + -- Ian Jackson Fri, 10 Feb 2006 17:42:12 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu2) dapper; urgency=low + + * Fix stupid FTBFS on default.xpm introduced in last upload. + * Retrospectively insert CVE numbers into 1ubuntu1 changelog entry. + + -- Ian Jackson Thu, 9 Feb 2006 12:45:15 +0000 + +firefox (1.5.dfsg+1.5.0.1-1ubuntu1) dapper; urgency=low + + Changes since 1.5.dfsg-4ubuntu6: + * New upstream version (1.5.0.1) - security and stability fixes, + allegedly. (About 7000 lines of diff, so not reviewed for Ubuntu.) + Security fixes included: + - CVE-2006-0292, CVE-2006-0293, MFSA 2006-01: JavaScript garbage-collection + hazards + - CVE-2006-0294, MFSA 2006-02: Changing position:relative to static + corrupts memory + - CVE-2005-4134, MFSA 2006-03: Long document title causes startup denial of + Service + - CVE-2006-0295, MFSA 2006-04: Memory corruption via QueryInterface on + Location, Navigator objects + - CVE-2006-0296, MFSA 2006-05: Localstore.rdf XML injection through + XULDocument.persist() + - CVE-2006-0297, MFSA 2006-06: Integer overflows in E4X, SVG and Canvas + - CVE-2006-0298, MFSA 2006-07: Read beyond buffer while parsing XML + - CVE-2006-0299, MFSA 2006-08: "AnyName" entrainment and access control + hazard + * Fix Norwegian translation in .desktop file. (Malone #30603.) + * mkdir /usr/include/mozilla in firefox-dev.preinst to avoid + maintainer script sometimes preventing installation. + * Move the shlibs needed for gtkmozembed to /usr/lib (avoids + need for rpath and nonsense in firefox-gtkmozembed.pc). + * Work around new GNU make braindamage by adding seddery to + security/coreconf/rules.mk. + + Expected-permanent differences between Ubuntu and Debian: + * Build nspr and nss for use by all other programs in the distribution + (Packages: libnspr-dev, libnss-dev, libnspr4, libnss3. Fairly main + changes to parts of the build system.) This is so that mozilla + can be in Ubuntu universe. + * Disable xprint. (xprint is not used in Ubuntu.) + * Slightly different arrangements do with with transitional arrangements + related to package renaming from mozilla-firefox-*. + * Removed transitional packages mozilla-firefox-dom-inspector and + mozilla-firefox-gnome-support (not needed in Ubuntu). + * Build firefox-dev; applications which embed a browser in Ubuntu + generally embed Firefox rather than mozilla. This also means that we + build firefox with dynamic linking so that embedders and load ff. + * Debian package search replaced by Ubuntu package search (and defaults + to searching only in dapper, not all releases). + * Changes to various icons (and their installation paths). + * Strip CUPS/ from the front of displayed printer names, since + all printing in Ubuntu is done via CUPS. + + Other differences remaining between Ubuntu and Debian: + * debian/rules clean removes various junk left over by the mozilla build + system. (Debian #350616.) + * Exclude libssl3.so from dpkg_shlibdeps as this triggers a bug in + fakeroot on amd64 in Ubuntu. + * Set FIREFOX_DSP=none by default. Will sometimes break sound from eg + Flash. See https://launchpad.net/malone/bugs/29760 for rationale. + (Debian maintainers notified but no bug filed.) + * Append our plugin path to any previous value of MOZ_PLUGIN_PATH. + (Malone 29412. Debian #351806) + * firefox.desktop file has more translations and consistently calls the + application `Firefox Web Browser' (for better UI in the menus - this + change is also in firefox.menu). Debian #351807. + * Default printing command doesn't break if printer name contains + spaces (actually a preference, in all.js). (Debian #351809, + Mozilla Bugzilla #326245). + * security/coreconf/rules.mk adjusted with awful seddery to cope with + GNU make change to POSIXly interpretation of backslash line-joining. + See http://lists.debian.org/debian-devel/2005/12/msg00988.html. + Mozilla Bugzilla #325148. + * security/coreconf/ruleset.mk has a set -e added. + * Use GNOME mime database instead of mailcap. Patch imported from Red + Hat; see debian/gnome-mime-handling.diff. + * Change various preferences: + - Ubuntu-specific default homepage + - Ubuntu-specific release notes + - default homepage can be locale-specific + - middlebutton paste disabled + - do not load a special home page on first start after an upgrade + - disable File / Import (wizard is nonfunctional). + Malone #28563, Debian #350599, Mozilla Bugzilla 117844. + - save files to Desktop by default + - README.Ubuntu file (still rather full of junk) + - Prevent websites disabling the right-button context menu. + - Default font for display is sans, but: + - Default CSS for printing uses a serif font. + + -- Ian Jackson Tue, 7 Feb 2006 17:14:17 +0000 + +firefox (1.5.dfsg+1.5.0.1-1) unstable; urgency=low + + * The "those Ubuntu guys are great after all" release. + * New upstream release. (Closes: #351442) + + [ Mike Hommey ] + * debian/presubj: Added indications to try to reproduce without extensions + before actually filing a bug, and a hint to the safe mode. + * debian/firefox.install: added the reporter chrome files. (Closes: #344888) + * widget/src/gtk2/nsWindow.cpp: Revert additional stale patch for + extended mouse buttons support. + * debian/firefox.postinst, debian/firefox.prerm: unbashified. + (Closes: #349946) + * debian/control, debian/firefox-gnome-support.postinst, + debian/firefox-gnome-support.prerm: Let the firefox-gnome-support + package provide gnome-www-browser and handle a gnome-www-browser + alternative. Thanks Loïc Minier. (Closes: #350788) + * debian/firefox-runner: Enable Pango support by default. The + MOZ_ENABLE_PANGO environment variable is now useless. (Closes: #338716) + * debian/README.Debian: Change the paragraph about Pango to hint about + the MOZ_DISABLE_PANGO variable. + + [ Eric Dorland ] + * content/events/src/nsEventStateManager.cpp, + modules/libpref/src/init/all.js, widget/public/nsGUIEvent.h: Apply + patch from Ian Jackson to revert a stale patch for multiple mouse + button support that was fixed in a different way in 1.5 + (Closes: #348375) + * debian/firefox.preinst: Check md5sum's of old conffiles before cp'ing + them on upgrade. This won't stop all unnecessary conffile prompting in + all situations (especially from really old versions), but should + definitely should work for upgrading from testing or stable. (Closes: + #345112) + * debian/firefox.install: + - Remove run-mozilla.sh. (Closes: #348902) + - Reorganize things a bit. + - Move profile into /etc/firefox here, instead of in the rules file. + * debian/firefox.install, debian/firefox.preinst, debian/firefox.links, + debian/firefox.dirs, debian/rules: Move chrome, defaults, greprefs + into /usr/share/firefox for more FHS goodnesss. + * debian/firefox.1: Document -new-tab and -new-window options, and + remove deprecated -remote option. (Closes: #348699) + * debian/firefox-runner: Apply patch to properly URL escape local + files. Thanks Morita Sho. (Closes: #348451) + * browser/app/profile/firefox.js: + - Reallow 40-bit ciphers, since now firefox warns people who + use them. (Closes: #349624) + - Enable bidi UI elements for our bi-directional friends. + (Closes: #348069) + * debian/rules: Remove glob pattern from dh_install invocation. Thanks + Ian Jackson. (Closes: #350571) + * browser/base/content/aboutDialog.xul: Fix spurious scrollbar in the + about dialog box. Thanks Ian Jackson. (Closes: #350608) + * js/src/fdlibm/fdlibm.h: Patch to fix little endianess of + mipsel. Thanks Ian Jackson and Thiemo Seufer. (Closes: #350621) + * browser/base/content/search.xml: Patch from Ian Jackson to remove + misleading Clear option from search box context menu. (Closes: #350611) + * debian/watch: Fix regex to actually find the upstream tarballs. + * modules/libpref/src/init/all.js: Cope better with printers with spaces + in the name. Thanks Ian Jackson. + * toolkit/components/passwordmgr/base/nsPasswordManager.cpp: Take patch + from bz#235336 as suggested by Ian Jackson to allow password manager + to work with sites that only have a password field, no username. + + -- Eric Dorland Mon, 6 Feb 2006 23:10:29 -0500 + +firefox (1.5.dfsg-4) unstable; urgency=low + + [ Eric Dorland ] + * debian/control, debian/rules: + - Remove Kerberos options, it is now loaded dynamically. + - Use /usr/share/firefox now for finding default.xpm. + * debian/firefox.install, debian/firefox.links, debian/firefox.preinst: + Start moving some clearly non-arch specific things + (/usr/lib/firefox/searchplugins, /usr/lib/firefox/icons, + /usr/lib/firefox/res) out of /usr/lib/firefox and into + /usr/share/firefox to make things more FHS friendly. Can't believe no + one ever called me on this before. + * toolkit/components/remote/nsGTKRemoteService.cpp, + widget/src/xremoteclient/XRemoteClient.cpp: Apply patch from bz#312154 + to fix remote interface on PPC (and probably other arches). (Closes: + #343913) + * xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_m68k.cpp: Patch from + Zack Weinberg to fix FTBFS on m68k. (Closes: #343687) + * xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp: Patch from Antti + P Miettinen to fix small optimization problem with newer gcc's + (Closes: #344846) + + [ Mike Hommey ] + * debian/firefox-runner: Cleaned up now useless variables. + + -- Eric Dorland Tue, 10 Jan 2006 10:11:34 -0500 + +firefox (1.5.dfsg-3) unstable; urgency=low + + * debian/control: + - Need explicit build dependency on gtk >= 2.8. + - Upgrade Standards-Version to 3.6.2.1. No changes. + - Add compatibility packages for mozilla-firefox-dom-inspector + and mozilla-firefox-gnome-support and make all the upgrade packages + Architecture: all. (Closes: #343879, #344379) + * debian/watch: Add watch file. + * debian/about.png.uu: Add uuencoded version of previous about box + graphic. + * debian/rules: uudecode and install the about.png into the right + location. + * debian/firefox-runner: Add MOZ_PLUGIN_PATH to include plugins at the + old location for now. (Closes: #344085, #341682) + * widget/src/gtk2/nsWindow.cpp: Patch from bz#305970 to fix broken + contextual menu on Save File As. (Closes: #344430) + + * config/mkdepend/imakemdep.h, security/nss/lib/pki1/pki1.h: Remove some + patches that are now useless (suggested by Mike Hommey). + * mailnews/extensions/palmsync/palm.html, + browser/themes/pinstripe/browser/browser.css, + gfx/src/mac/nsNativeThemeMac.h, + directory/c-sdk/ldap/docs/draft-ietf-ldapext-ldap-c-api-05.txt, + layout/html/tests/table/bugs/bug123862.html, + layout/html/tests/table/bugs/bug119786.html, + layout/html/tests/table/bugs/bug101759.html, + layout/html/tests/table/bugs/bug14489.html, + layout/html/tests/table/bugs/bug222846.html, + layout/html/tests/block/bugs/155333-1.html, + layout/html/tests/block/bugs/185411-2.html, + layout/html/tests/block/bugs/13599.html, + layout/html/tests/block/bugs/53960.html, + layout/html/tests/block/bugs/155333-2.html, + layout/html/tests/block/bugs/38157-a.html, + layout/html/tests/block/bugs/38157-b.html, + layout/html/tests/block/bugs/46918.html, + layout/html/tests/block/printing/145305-11.html, + layout/html/tests/block/printing/145305-21.html, + layout/html/tests/block/printing/145305-13.html, + layout/html/tests/block/printing/145305-17.html, + layout/html/tests/block/printing/145305-19.html, + layout/html/tests/block/printing/145305-4.html, + layout/html/tests/block/printing/127145-1.html, + layout/html/tests/block/printing/145305-3.html, + layout/html/tests/block/printing/145305-7.html, + layout/html/tests/block/printing/145305-9.html, + layout/html/tests/frameset/core/r3.html, + layout/html/tests/frameset/core/r4.html, + layout/html/tests/frameset/core/blank2.html, + xpinstall/packager/stage_mfcembed.pl, xpinstall/packager/stage_gre.pl, + embedding/qa/testembed/Tests.cpp, + embedding/qa/testembed/nsihttpchanneltests.cpp, + embedding/qa/testembed/BrowserImpl.cpp, + embedding/qa/testembed/Tests.h, embedding/qa/testembed/QaUtils.cpp, + embedding/qa/testembed/resource.h, + embedding/qa/testembed/DomWindow.cpp, + embedding/qa/testembed/QaUtils.h, build/unix/abs2rel.pl, + xpfe/bootstrap/icons/windows/readme.txt, + security/nss/cmd/ssltap/ssltap-manual.html: Fix mess my subversion + repository made of line endings. This should reduce the size of the + diff.gz dramatically. + + -- Eric Dorland Sat, 24 Dec 2005 03:23:02 -0500 + +firefox (1.5.dfsg-2) unstable; urgency=low + + * browser/locales/en-US/chrome/branding/brand.dtd, + browser/locales/en-US/chrome/branding/brand.properties: Change brand + name from Deer Park to Firefox. About box graphic still needs to be + fixed. *grumble* *grumble* (Closes: #343704) + + -- Eric Dorland Sat, 17 Dec 2005 13:45:14 -0500 + +firefox (1.5.dfsg-1) unstable; urgency=low + + * New upstream release. No actual code changes from RC3. Took the + opportunity to completely empty the /other-licenses directory of the + upstream tarball. + * configure, configure.in: Change MOZ_APP_DISPLAYNAME to Firefox, so we + can be called Firefox without using + --enable-official-branding. *grumble* + * config/autoconf.mk.in, gfx/src/gtk/mozilla-decoder.cpp, configure.in: + Apply patch from bz#305185 to fix problems building against gtk+ 2.8. + * debian/control: + - Build-Depend on libfreetype6-dev since we do link + against it directly. + - Add mozilla-firefox package for easy transition. + - Conflict against older mozilla-firefox packages. + * debian/firefox-runner: + - Fix typo. (Closes: #341113) + - Check /usr/lib/mozilla-firefox/plugins for plugins too for the + time being. (Closes: #341682) + * debian/firefox-dom-inspector.preinst: Remove, not needed since the + name change. + * debian/firefox.preinst: + - Remove old upgrade code. + - Move old mozilla-firefox configs into place on install. + * debian/mozilla-firefox.preinst: Move upgrade code in here. Remove + mozilla-firefox alternative. + * debian/mozilla-firefox.postrm: Remove /etc/mozilla-firefox on purge. + + * Some patches missed when merging from Mike Hommey: + * browser/locales/en-US/searchplugins/answers.src: Change updateDays to + 0. + * config/mkdepend/imakemdep.h: Define for amd64. + * configure, configure.in: Visibility patch for recent gcc's. (Closes: + #341766) + * modules/libpref/src/nsPrefService.cpp: Patch to load preferences from + defaults/syspref. + * content/events/src/nsEventStateManager.cpp: Extended mouse events + patch. + * gfx/idl/nsIFreeType2.idl, gfx/src/freetype/nsFreeType.cpp, + gfx/src/freetype/nsFreeType.h, gfx/src/ps/nsFontMetricsPS.h, + gfx/src/x11shared/nsFontFreeType.cpp, + gfx/src/x11shared/nsFontFreeType.h, + layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp: Patch to + use new freetype API. + + -- Eric Dorland Fri, 16 Dec 2005 11:37:23 -0500 + +firefox (1.4.99+1.5rc3.dfsg-2) unstable; urgency=low + + * The "Grand Renaming" release. Thanks to Mike Hommey for sherperding + the 1.5 series through experimental. Now it's my turn to muck it up. A + transition packages will be in the next release. + * debian/mozilla-firefox*: Rename to firefox*. + * debian/firefox.install, debian/firefox-dom-inspector.install, + debian/firefox-gnome-support.install, debian/firefox-runner, + firefox-xremote-client, firefox.1, firefox.desktop, firefox.dirs, + debian/firefox.js, debian/firefox.links, debian/firefox.manpages, + debian/firefox.menu, debian/firefox.mime, debian/firefox.postinst, + debian/firefox.prerm, debian/firefox.png.uu, debian/README.Debian, + debian/control, debian/rules: Search/Replace mozilla-firefox -> + firefox where appropriate. + * debian/firefox.links: Link old icon name to new. + * debian/README.Debian: Fix path to .mozilla/firefox/rc. (Closes: + #335433) + * config/autoconf.mk.in: Set mozappdir to /usr/lib/firefox. + + -- Eric Dorland Sun, 27 Nov 2005 20:03:02 -0500 + +mozilla-firefox (1.4.99+1.5rc3.dfsg-1) experimental; urgency=low + + * New upstream 1.5 preview release. Release Candidate 3. + * debian/mozilla-firefox-runner: Removed the ping stuff, it's now done by + firefox itself. + + -- Mike Hommey Fri, 18 Nov 2005 07:24:05 +0100 + +mozilla-firefox (1.4.99+1.5rc2.dfsg-1) experimental; urgency=low + + * New upstream 1.5 preview release. Release Candidate 2. + * xpcom/typelib/xpidl/xpidl.c: Fix crash when no file is given on the + command line (Closes: #323639). Also fix the error message about extra + arguments given showing before the crash. + * configure.in, configure: Work around dash's bug #337294 so that we can + build fine when sh is dash (Closes: #211010, #256384). + * debian/mozilla-firefox-runner: + - Removed the code to detect the JVM and set LD_ASSUME_KERNEL=2.2.5 for + b0rked 1.3 JVMs: it's been a long time they've not been ABI compatible. + - Removed setting of MOZILLA_FIVE_HOME. We already have a default one + built-in. + - Removed /usr/lib/mozilla/plugins from EXTENT_LD_LIB_PATH, since we never + get the plugins from there. + - Removed cleanup of the profile. It is correctly done by firefox, now. + + -- Mike Hommey Fri, 11 Nov 2005 08:07:05 +0100 + +mozilla-firefox (1.4.99+1.5rc1.dfsg-1) experimental; urgency=low + + * New upstream 1.5 preview release. Release Candidate 1. + * debian/mozilla-firefox.install: Don't install + /usr/lib/mozilla-firefox/extensions/reporter@mozilla.org, it got moved in + the chrome. + + -- Mike Hommey Tue, 1 Nov 2005 22:01:15 +0100 + +mozilla-firefox (1.4.99+1.5beta2.dfsg-1) experimental; urgency=low + + * build/unix/run-mozilla.sh, netwerk/base/src/nsStandardURL.cpp: + Reverted debian changes: they got applied upstream. + * configure: Applied configure.in changes by hand. + * debian/rules: Disabled both the installer and the updater, we don't need + them. + + -- Mike Hommey Fri, 7 Oct 2005 15:06:05 +0200 + +mozilla-firefox (1.4.99+1.5beta1.dfsg-5) experimental; urgency=low + + * debian/control: Bumped Standards-Version to 3.6.2. + * nsprpub/configure.in: Reverted changed. + * configure.in: Use -fvisibility=hidden in all cases. There is another bug + in gcc that makes it generate position dependent code when using the + system wrappers. + * configure, nsprpub/configure: Applied configure.in changes with + autoconf2.13. + * debian/rules: Put back the /usr/share/pixmaps/mozilla-firefox.xpm file. + + -- Mike Hommey Mon, 3 Oct 2005 18:46:50 +0200 + +mozilla-firefox (1.4.99+1.5beta1.dfsg-4) experimental; urgency=low + + * xpcom/typelib/xpt/src/Makefile.in: Reverted changes. + * configure.in, nsprpub/configure.in: Added a detection of the gcc bug about + visibility for builtins, and use -fvisibility=hidden instead of the system + wrappers in case the bug is found. + * configure, nsprpub/configure: Applied configure.in changes with + autoconf2.13. (Really closes: #329642) + + -- Mike Hommey Tue, 27 Sep 2005 20:16:34 +0200 + +mozilla-firefox (1.4.99+1.5beta1.dfsg-3) experimental; urgency=low + + * Sync with unstable branch. + * xpcom/typelib/xpt/src/Makefile.in: disable visibility stuff for ppc, as a + workaround for FTBFS. (Closes: #329642) + + -- Mike Hommey Mon, 26 Sep 2005 18:35:11 +0200 + +mozilla-firefox (1.0.7-1) unstable; urgency=high + + * New upstream release. Contains fixes for various security issues. + * debian/mozilla-firefox-runner: Remove /usr/lib from + LD_LIBRARY_PATH. (Closes: #321789) + + -- Eric Dorland Thu, 22 Sep 2005 01:23:10 -0400 + +mozilla-firefox (1.4.99+1.5beta1.dfsg-2) experimental; urgency=low + + * debian/rules: enabled support for canvas. + + -- Mike Hommey Tue, 20 Sep 2005 07:56:01 +0200 + +mozilla-firefox (1.4.99+1.5beta1.dfsg-1) experimental; urgency=low + + * Cleaned-up source tarball from trademarked content and CVS directories. + * debian/mozilla-firefox-small.xpm, debian/mozilla-firefox.xpm: Removed. + * debian/mozilla-firefox.dirs, debian/rules: + + Create /usr/lib/mozilla-firefox/chrome/icons/default and move + default.xpm in it. (Closes: #327828) + + Stop using our own xpm icons, upstream provide them, now. + * debian/rules: changed the build system a bit. + * xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s: Somewhat these + files disappeared. Put them back. (Closes: #328074) + + -- Mike Hommey Tue, 13 Sep 2005 18:25:48 +0200 + +mozilla-firefox (1.4.99+1.5beta1-2) experimental; urgency=critical + + * Sync with unstable branch. + * netwerk/base/src/nsStandardURL.cpp: Apply the patch for the 1.8 branch + from bz#307259 to fix CAN-2005-2871. (Closes: #327452) + * debian/mozilla-firefox-gnome-support.install, debian/rules: Move out + imgicon module in mozilla-firefox-gnome-support. (Closes: #327451) + + -- Mike Hommey Sun, 11 Sep 2005 10:45:34 +0200 + +mozilla-firefox (1.0.6-5) unstable; urgency=critical + + * xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp: Fix for previous + arm fix. Thanks Steve. (Closes: #325535) + * netwerk/base/src/nsStandardURL.cpp: Patch from bz#307259 to fix + CAN-2005-2871, a buffer overflow vulnerability in IDN + processing. (Closes: #327452) + + -- Eric Dorland Sat, 10 Sep 2005 23:03:26 -0400 + +mozilla-firefox (1.4.99+1.5beta1-1) experimental; urgency=low + + * New upstream beta release. + + Find toolbar doesn't show up when in text fields. Closes: #280852. + + Better use of GTK2 themes. The most common case was highlighted menu + item text appearing in white on a white background. Closes: #223696, + #257430, #258181, #266334, #278559, #289326, #297320, #310098. + + Download manager correctly closes. Closes: #259015, #269975. + + Doesn't crash with the http://ln.hixie.ch/resources/style/orange + stylesheet. Closes: #277987. + + Locale extensions can properly be disabled. Closes: #279749 (to check). + + Doesn't crash on + http://einsteinmg.dyndns.org/cgi-bin/remangle.cgi?=0x27b9b660 anymore. + Closes: #294372. + + Downloads don't freeze when a modal window opens. Closes: #211332. + + Use GTK stock images. Closes: #281660. + * Sync with unstable branch changes. + * browser/app/profile/firefox.js, debian/firefox.js: + + Removed outdated extensions.update.autoUpdateEnabled and + extensions.update.autoUpdate; + + Removed general.useragent.locale. + + Allow extensions updates. It works correctly with system-wide installed + ones, now. + * netwerk/protocol/http/src/nsHttpConnectionMgr.cpp, + nsprpub/pr/include/md/_linux.cfg, widget/src/gtk2/mozdrawingarea.c, + widget/src/gtk2/nsDragService.cpp: Reversed changes, since they got + applied upstream. + * xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp: correctly set + __attribute__. Closes: #325535. + * debian/rules: + + set --enable-extensions=default instead of a full list. + We will get the default set of extensions provided by upstream, and + won't need to check if they changed. + + set --enable-pango. + + set --enable-system-cairo. + * debian/control: added build dependency on libgnomeui-dev and libcairo2-dev. + * debian/mozilla-firefox.install, debian/rules: don't install files in + /usr/lib/mozilla-firefox/chrome/icons/ anymore. + * debian/mozilla-firefox-runner: Force MOZ_DISABLE_PANGO to 1 if + MOZ_ENABLE_PANGO is not set. + * debian/README.Debian: + + Removed the note about IDN, it is now enabled by default, with correct + whitelist set. + + Added a note about MOZ_ENABLE_PANGO. + + Changed notes about application update, extensions, and packaged + extensions. + * modules/libpref/src/init/all.js: + + Set general.config.obscure_value to 0, we don't care about the config + file not to be "obscured". + + Set general.config.filename to firefox.cfg. + * debian/firefox.cfg: Create configuration to lock some properties. + * debian/mozilla-firefox.install: Install this firefox.cfg in + /usr/lib/mozilla-firefox + + -- Mike Hommey Fri, 9 Sep 2005 17:40:40 +0200 + +mozilla-firefox (1.0.6-4) unstable; urgency=low + + * xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp: Patch + from Steve Langasek to fix unused vs. used gcc attribute on alpha and + arm. (Closes: #325535) + * browser/app/profile/firefox.js: Revert patch to remove the "I'm + feeling lucky" search. Some like it, some hate it, so upstream + behaviour wins. If you still feel strongly about it, make your case + upstream. + * gfx/src/gtk/nsFontMetricsXft.cpp: Apply patch from bz#252033 to work + around a bug in XRender that might be causing #319349. + + -- Eric Dorland Tue, 6 Sep 2005 02:10:07 -0400 + +mozilla-firefox (1.0.99+deerpark-alpha2-2) experimental; urgency=low + + * Sync with unstable branch changes, except the controversial "I'm feeling + lucky" change. I prefer waiting for the controversy to get to a + conclusion. + * debian/rules, debian/control: Remove build dependency on libmng-dev and + the --with-system-mng option to configure, the MNG support has been + removed upstream. + * debian/rules: Explicitely set the svg-renderer as cairo. It will use an + old cairo version bundled with firefox, but there's no other solution for + the moment. We have to wait for upstream 0.9.x and greater support + (hoped for 1.5). + + -- Mike Hommey Sun, 4 Sep 2005 09:01:54 +0200 + +mozilla-firefox (1.0.6-3) unstable; urgency=low + + * debian/rules, nsprpub/pr/include/md/_linux.cfg, + security/coreconf/Linux.mk: Apply patch from Andreas Jochens to allow + ppc64 builds. (Closes: #322617) + * debian/mozilla-firefox.prerm: Move -depth option to find to suppress + warnings. Thanks Mike Hommey. + * debian/presubj: Have bugzilla bug URL point to a page where you can + enter a bug. + * browser/app/profile/firefox.js: removed the "I'm feeling lucky" from + the keyword.URL, so now if you enter search terms in the address bar + you will be presented with search results and not taken to the first + result. Thanks Torok Edwin. (Closes: #321823) + + -- Eric Dorland Mon, 22 Aug 2005 01:20:28 -0400 + +mozilla-firefox (1.0.6-2) unstable; urgency=medium + + * modules/libpr0n/src/imgLoader.cpp, modules/libpr0n/src/imgLoader.h: + Apply ported patch from Serge Belyshev from bz#293307 to fix problem + with gcc-4.0 on amd64. (Closes: #319336) + * debian/rules: Remove silly --enable-freetype configure line. Thanks + Antony Gelberg. (Closes: #319886) + + -- Eric Dorland Sat, 30 Jul 2005 02:11:03 -0400 + +mozilla-firefox (1.0.6-1) unstable; urgency=low + + * New upstream release. (Closes: #318672) + * debian/rules: Remove hack to use gcc 3.4 on amd64, since now we're all + on gcc 4.0. (Closes: #318684) + * debian/control: + - Remove gcc 3.4 build depends on amd64 + - Explicitly build depend on libxinerama-dev. + * gfx/src/gtk/nsScreenGtk.cpp: Patch from Loic Minier to fix + gdk_property_get warnings. + * widget/src/gtk2/mozdrawingarea.c: Patch from Loic Minier to fix + crashes under GTK 2.7. (Closes: #318903) + + -- Eric Dorland Wed, 20 Jul 2005 02:57:44 -0400 + +mozilla-firefox (1.0.99+deerpark-alpha2-1) experimental; urgency=low + + * New upstream alpha release. Be aware that you WILL have troubles with + debian packages for firefox extensions. + * Reverted patches that got incorporated upstream. + * content/events/src/nsEventStateManager.cpp: Some changes to the previous + patch to fit changes in API. + * debian/update-mozilla-firefox-chrome, + debian/update-mozilla-firefox-chrome.8, + debian/mozilla-firefox-dom-inspector.post(inst|rm), + debian/mozilla-firefox-gnome-support.post(inst|rm), + debian/theme/*, debian/inspector/*: Removed. + * debian/mozilla-firefox.postinst: Removed call to + update-mozilla-firefox-chrome. + * debian/mozilla-firefox-dom-inspector.install: Only install files from + /usr/lib/mozilla-firefox/extensions/inspector@mozilla.org + * debian/mozilla-firefox.dirs: Don't create /var/lib/mozilla-firefox/*, + /usr/lib/mozilla-firefox/extensions nor /usr/lib/mozilla-firefox/plugins. + * debian/mozilla-firefox.install: + - Don't install regxpchrome, chrome/pipnss.jar and chrome/help.jar which + don't exist anymore. + - Install manifest files in addition to jar files in chrome. + - Install classic.jar in the normal chrome directory (awaiting EM + modifications so that it can actually go back in the extensions + directory). + - Don't install debian/theme/00classic and debian/theme/Uninstall, + which got removed. + - Get the theme in the correct directory (it's not in + defaults/profile/extensions anymore). + - Install the reporter extension. + - Selectively install subdirectories of /usr/lib/mozilla-firefox/defaults, + since some of them are useless. + - Install the unixprint plugin. + * debian/mozilla-firefox.manpages: Removed manual page for + update-mozilla-firefox-chrome. + * debian/mozilla-firefox.links: Removed all links in + /var/lib/mozilla-firefox/. + * debian/rules: + - Enable freetype in the build, we'll see if deerpark is any better than + 1.0.x. + - Commented out OPTFLAGS set for some architectures. We will see if gcc + 4.0 is doing any better. + - Enabled SVG support. (Closes: #215990) + - Enabled some more extensions to fit extensions provided by upstream. + - Added needed --enable-application=browser to the ./configure call. + - Don't install update-mozilla-firefox-chrome. + - Don't create installed-chrome.txt. + - Don't remove installed-extensions.txt, it doesn't exist anyway. + - Don't move classic theme's install.rdf, it's already at the correct + place. + - Remove unneeded removals of preferences files which are not there + anymore. + * debian/mozilla-firefox.preinst: Clean-up old generated files (those in + /var/lib/mozilla-firefox and + /usr/lib/mozilla-firefox/extensions/*/uninstall/Uninstall. (Note that for + the latter, some packages do provide them, but they were overwritten by + update-mozilla-firefox-chrome. They have actually no use, and it is safe + to remove them. Extensions packages will eventually remove them anyway) + * debian/mozilla-firefox.prerm: Put -depth option of find before -type d. + + -- Mike Hommey Sat, 16 Jul 2005 10:18:40 +0200 + +mozilla-firefox (1.0.5-1) unstable; urgency=high + + * New upstream release, fixes security issues. (Closes: #318061) + * debian/rules: Disable freetype in the build for the time being. This + *might* break printing in some cases. + * gfx/idl/nsIFreeType2.idl, gfx/src/freetype/nsFreeType.cpp, + gfx/src/freetype/nsFreeType.h, gfx/src/ps/nsFontMetricsPS.cpp, + gfx/src/ps/nsFontMetricsPS.h, gfx/src/x11shared/nsFontFreeType.cpp, + gfx/src/x11shared/nsFontFreeType.h, + layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp: Patch + from bz#234035 to try to get building with the new freetype. (Closes: + #314243) + + -- Eric Dorland Sat, 16 Jul 2005 00:43:54 -0400 + +mozilla-firefox (1.0.4-3) unstable; urgency=low + + * debian/mozilla-firefox.desktop: Add Czech translation from Jan + Outrata. (Closes: #311376) + * xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ipf64.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_ipf64.cpp, + xpcom/reflect/xptcall/public/xptcstubsdecl.inc: Revert patch from + David Mosberger for 7+ args on ia64 that was added 1.0.3-2. + * xpcom/reflect/xptcall/src/md/unix/xptcstubs_ipf32.cpp, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ipf32.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ipf64.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_ipf64.cpp, + xpcom/reflect/xptcall/public/genstubs.pl: Better patch from bz#291378 + which has been accepted upstream for ia64 7+ args fix. + * xpcom/reflect/xptcall/public/xptcstubsdecl.inc: Call genstubs.pl to + regenerate this file. + * dom/src/base/nsGlobalWindow.cpp, + embedding/components/windowwatcher/src/nsWindowWatcher.cpp: Fix + injection spoofing, patch from bz#296850. Fixes CAN-2004-0718. + + -- Eric Dorland Thu, 9 Jun 2005 23:54:41 -0400 + +mozilla-firefox (1.0.4-2) unstable; urgency=critical + + * debian/control: Build-depend on libxft-dev not libxft2-dev to appease + finicky sparc buildd. + + -- Eric Dorland Mon, 16 May 2005 21:17:57 -0400 + +mozilla-firefox (1.0.4-1) unstable; urgency=critical + + * New upstream release. Fixes CAN-2005-1477 and CAN-2005-1476. (Closes: #308620) + * debian/update-mozilla-firefox-chrome.8: Patch from A Costa to fix the + spelling of maintenace. (Closes: #305968) + * debian/mozilla-firefox.desktop: Patch from Steinar H. Gunderson to add + a Norwegian translation. (Closes: #305983) + + -- Eric Dorland Thu, 12 May 2005 22:59:47 -0400 + +mozilla-firefox (1.0.3-2) unstable; urgency=high + + * browser/app/profile/firefox.js: Disable SSLv2 and 40-bit ciphers by + default. + * debian/mozilla-firefox.NEWS: Explain the SSL change. + * extensions/transformiix/source/base/Double.cpp: Patch from David + Mosberger-Tang (fixed up by me) to fix unaligned access on ia64 (and + perhaps other platforms). (Closes: #303518) + * xpcom/reflect/xptcall/public/xptcstubsdecl.inc, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ipf64.s, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_ipf64.cpp: Another patch + from David Mosberger-Tang to fix extension loading on ia64. (Closes: + #303515) + + -- Eric Dorland Thu, 21 Apr 2005 01:25:02 -0400 + +mozilla-firefox (1.0.3-1) unstable; urgency=low + + * New upstream release, fixes various security issues, so urgency high. + * js/src/fdlibm/fdlibm.h: Fix from David Mosberger to define ia64 as + little-endian arch (also added for mipsel). (Closes: #303438) + + -- Eric Dorland Sun, 17 Apr 2005 23:13:01 -0400 + +mozilla-firefox (1.0.2-3) unstable; urgency=high + + * gfx/src/freetype/nsFreeType.cpp, + netwerk/protocol/http/src/nsHttpConnectionMgr.cpp, + security/nss/lib/pki1/oiddata.h, security/nss/lib/pki1/pki1.h, + widget/src/gtk2/nsDragService.cpp: Fixes for gcc-4.0, + bz#289238. (Closes: #301485) + * js/src/jsstr.c: Fix for JS memory access security bug, patch from + bz#288688. (Closes: #302775) + + -- Eric Dorland Wed, 6 Apr 2005 01:36:11 -0400 + +mozilla-firefox (1.0.2-2) unstable; urgency=high + + * Last upload should of been marked urgency=high because of the security + fixes. + * debian/mozilla-firefox.postinst: Fix ridiculous typos. (Closes: + #300685) + * debian/mozilla-firefox-runner: Use pgrep to detect esd and arts + instead. Thanks Craig Small for the advice. (Closes: #302086) + + -- Eric Dorland Fri, 1 Apr 2005 01:18:18 -0500 + +mozilla-firefox (1.0.2-1) unstable; urgency=low + + * New upstream release. Fixes CAN-2005-0399, CAN-2005-0401, + CAN-2005-0402. (Closes: #301243) + * debian/control: Update suggest for xprint rename. (Closes: #300976) + * xpcom/reflect/xptcall/src/md/unix/{Makefile.in, + xptcinvoke_asm_parisc_linux.s, xptcstubs_asm_parisc_linux.s}: Apply + patch from Ivar (Contributed by Randolph Chung) to fix Firefox on + hppa. (Closes: #286038) + + -- Eric Dorland Fri, 25 Mar 2005 02:30:10 -0500 + +mozilla-firefox (1.0.1-3) unstable; urgency=low + + * widget/src/gtk2/nsGtkKeyUtils.cpp: Patch from bz#108170 to fix broken + keymap for Germans. (Closes: #299781) + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in: avoid + crashing when extension's install.rdf is broken. (Closes: #298796) + (MH) + * debian/mozilla-firefox.prerm: Remove + /usr/lib/mozilla-firefox/defaults/profile/extensions/Extensions.rdf on + uninstall. (Closes: #298636) + * debian/mozilla-firefox.postinst: Add little echo to tell people to + restart firefox after upgrades. + * debian/presubj: Add a note there about restarting firefox before + submitting bugs. + * debian/mozilla-firefox-runner: Properly quote $@ expansion. (Closes: + #300195) + * browser/locales/en-US/searchplugins/ + {yahoo.src,google.src,eBay.src,dictionary.src,creativecommons.src, + amazondotcom.src}: Set updateCheckDays to 0, which avoids duplicated + search entries in the menu. (Closes: #299006, #299813) + + -- Eric Dorland Sun, 20 Mar 2005 17:08:12 -0500 + +mozilla-firefox (1.0.1-2) unstable; urgency=high + + * Changes by Mike Hommey: + * Urgency: high due to RC bug fix. + * debian/update-mozilla-firefox-chrome: Re-initialize Extensions.rdf + inside the script instead of relying on mozilla-firefox's default + behaviour, which just fails when defaults/profile/extensions/ \ + Extensions.rdf doesn't exist (and it seems some people like to remove + files in /etc). (Closes: #294175) + + * Changes by Eric Dorland: + * debian/mozilla-firefox.menu: Capitalize "browsers". Thanks Gerfried + Fuchs. + * debian/mozilla-firefox-runner: Fix from Marc Horowitz to fix sound + device detection. (Closes: #297088) + * toolkit/content/widgets/tabbrowser.xml: Apply patch from bz#283063, to + fix a memory leak when closing tabs. (Closes: #296749) + * xpfe/global/resources/content/bindings/browser.xml, + xpfe/global/resources/content/bindings/tabbrowser.xml, + toolkit/content/widgets/browser.xml, + toolkit/content/widgets/tabbrowser.xml: Apply patches from bz#131456 + to fix various tab related memory leaks. (Closes: #280586) + * netwerk/protocol/http/src/nsHttpHandler.cpp: Patch from bz#265536 to + differentiate between AMD64 and i386. (Closes: #282592) + + -- Eric Dorland Sat, 5 Mar 2005 18:46:09 -0500 + +mozilla-firefox (1.0.1-1) unstable; urgency=high + + * New upstream release. (Closes: #296851) + - This release fixes the Secunia window injection bug, + CAN-2004-1156. (Closes: #293664) + + * Changes by Mike Hommey: + * debian/rules: Some clean-up. + * debian/control: Changed my maintainer address. + * debian/README.Debian: Add a note about automatic updates for + extensions. (Closes: #296761) + + * Changes by Eric Dorland: + * browser/app/profile/firefox.js: Remove disable IDN pref, it's the + default now anyway. + + -- Eric Dorland Tue, 1 Mar 2005 02:03:48 -0500 + +mozilla-firefox (1.0+dfsg.1-6) unstable; urgency=high + + * The "And I thought IE had security bugs!" release. + * toolkit/content/widgets/tabbrowser.xml, + xpfe/global/resources/content/bindings/tabbrowser.xml: Fix + "Firetabbing" vulnerability from bugzilla#280056, fixes + CAN-2005-0231. (Closes: #294415) + * modules/plugin/base/src/nsPluginHostImpl.cpp: Fix "Fireflashing" + vulnerability from bugzilla#280664, fixes CAN-2005-0232. (Also Closes: + #294415) + * build/unix/run-mozilla.sh: Patch from Javier Fernández-Sanguino Peña + to fix insecure temp file usage in run-mozilla.sh. (Closes: #294127) + * netwerk/base/src/nsStandardURL.cpp, netwerk/base/src/nsStandardURL.h: + Patch from bugzilla#261934 to make the network.enableIDN preference + work and again. + * browser/app/profile/firefox.js: Disable IDN by default. This doesn't + close #293975, but drops its severity. + * debian/README.Debian: Add warning and describe how to enable IDN. + + -- Eric Dorland Wed, 9 Feb 2005 22:56:17 -0500 + +mozilla-firefox (1.0+dfsg.1-5) unstable; urgency=low + + * debian/mozilla-firefox.desktop: Don't translate "Mozilla Firefox" into + French. + * browser/app/profile/firefox.js: Set mozilla.widget.raise-on-setfocus + to false to prevent unecessary window raising. (Closes: #292049) + * debian/rules: Don't compile statically on mips and mipsel, since it's + broken for now. + + -- Eric Dorland Sun, 6 Feb 2005 15:02:36 -0500 + +mozilla-firefox (1.0+dfsg.1-4) unstable; urgency=low + + * debian/mozilla-firefox.desktop: Add French translations from Jerome + Warnier. I will accept more, but closing this bug. (Closes: #292506) + * debian/README.Debian: Update the Emacs keybindings instructions. + (Closes: #291691) + * debian/mozilla-firefox.1: + - Remove -splash from the manpage, it has never worked. (Closes: + #287088) + - Add units to -height and -width description. (Closes: #285142) + + -- Eric Dorland Wed, 2 Feb 2005 01:42:53 -0500 + +mozilla-firefox (1.0+dfsg.1-3) experimental; urgency=low + + * debian/mozilla-firefox.desktop: Add %u to the exec line so that apps + know it can handle URLs. (Closes: #290132) + * debian/README.Debian: + - Improve button reversal instructions. Thanks Christian Mayrhuber + - Fix reference to ~/.firefox. + * debian/rules: Enable static building. This will build firefox as one + large binary (mostly) and should speed a few things up, especially + program load time. I'd like to hear about any speedup (or slow down) + you exprience. Porters, please build this for your arch to make sure + this doesn't break anything. + + -- Eric Dorland Thu, 20 Jan 2005 01:40:34 -0500 + +mozilla-firefox (1.0+dfsg.1-2) unstable; urgency=medium + + * debian/mozilla-firefox-gnome-support.postrm, + debian/mozilla-firefox-dom-inspector.postrm: Don't die if + update-mozilla-firefox-chrome dies. (Closes: #287355) + + -- Eric Dorland Sun, 9 Jan 2005 23:51:10 -0500 + +mozilla-firefox (1.0+dfsg.1-1) unstable; urgency=low + + * Not a new upstream release. + * other-licenses/branding/firefox, other-licenses/7zstub/firefox: Remove + these from the .orig.tar.gz, since they are not DFSG-free. We're not + using the files anyway, so out they go. (Not sure the 7zstub stuff is + non-free, but it's Windows only so no harm) + * debian/rules: + - Remove explicit low-optimization on alpha, since Falk + Hueffner claims it works. + - Move entire defaults/profile directory into /etc/mozilla-firefox, + rather than just the bookmarks.html. (Closes: #285538) + * debian/mozilla-firefox.links: Link entire defaults/profile now. + * debian/mozilla-firefox.preinst: Add upgrade code to remove old + defaults/profile to make way for new symlink. + * debian/mozilla-firefox.dirs: Just create etc/mozilla-firefox. + + -- Eric Dorland Sun, 19 Dec 2004 01:31:44 -0500 + +mozilla-firefox (1.0-5) unstable; urgency=medium + + * Changes by Mike Hommey: + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Make the + extensions upgrade work again. (Closes: #282143) + * debian/rules: Better DEB_BUILD_OPTIONS handling, better debugging + build (DEB_BUILD_OPTIONS="nostrip debug") + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in, + toolkit/mozapps/extensions/content/extensions.js: Allow users to + disable globally installed extensions. + + * Changes by Eric Dorland: + * debian/rules: Remove explicit low-optimization on sparc. Apparently + there was an issue for a number of arches that required lower + optimization settings, but it is now resolved. So porters, please + check -O2 on arm, alpha, powerpc and ia64 and let me know if it's + safe. Thanks David S. Miller. (Closes: #284533) + + -- Eric Dorland Tue, 7 Dec 2004 01:06:48 -0500 + +mozilla-firefox (1.0-4) unstable; urgency=medium + + * debian/control: Make mozilla-firefox-gnome-support and xprt-xprintorg + Suggests, no Recommends after a look at policy. (Closes: #282432) + * debian/README.Debian: + - Refer to .mozilla/firefox, not .firefox. + - Explain how to reenable emacs style keybindings. (Closes: #282321) + + -- Eric Dorland Sat, 27 Nov 2004 20:40:10 -0500 + +mozilla-firefox (1.0-3) unstable; urgency=low + + * Changes by Mike Hommey + * The "becoming more and more an iceweasel" release. + * debian/firefox.js: + + Enable firefox's internal locale autodetection. + + Disable default browser question at startup. (Closes: #280752) + * debian/mozilla-firefox-runner: Removed our locale autodetection. + That means now locales installed in user profiles are automatically + used, and that there is no need for /var/lib/mozilla-firefox/locales.d + anymore. + * debian/mozilla-firefox.dirs: Removed creation of + /var/lib/mozilla-firefox/locales.d. + * debian/rules: Removed creation of the locale file in + /var/lib/mozilla-firefox/locales.d. + * debian/presubj: Put some more recent information. + * htmlparser/src/nsParser.cpp: Applied patch from bz#57717 so that empty + html files don't get when viewing source. + * browser/base/content/aboutDialog.css: increase the User Agent element + height as in bz#238137 (but up to MacOSX's height) to show the full User + Agent string. + * xpcom/io/nsAppDirectoryServiceDefs.h, + xpcom/io/nsAppFileLocationProvider.cpp, + xpfe/components/search/src/nsInternetSearchService.cpp: Applied patch from + bz#123315 so that Internet search services in user profiles are supported. + (Closes: #219053) + * debian/mozilla-firefox-runner: + + Remove compatibility.ini only if it is older than + /usr/lib/mozilla-firefox/components.ini. That way, we only rebuild it + after an update-mozilla-firefox-chrome. + + Detect if we're being run through sudo without the -H option, in which + case we force setting of $HOME. (Closes: #218156) + * browser/app/profile/firefox.js: Sync'ed with debian/firefox.js. + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in: + + Removed some error messages that get there because firefox is trying to + write in the /usr/lib/mozilla-firefox directory as a user. They are + useless and lead users to think something is going wrong while it's the + (stupid but) normal way firefox works. + + Avoid creation of directories when attempting to read files, that + throwed uncaught exceptions breaking some stuff in several different + ways when extensions don't follow the new scheme for extensions. + + Avoid copying stuff from + /usr/lib/mozilla-firefox/defaults/profile/extensions/ to + /usr/lib/mozilla-firefox/extensions/, that's the *very* old way of + installing extensions, which, since the old scheme has been thrown away, + won't work anyway, if any extension provides files out there. + + CheckForMismatches: Avoid to disable already disabled global extensions, + and don't propose to upgrade the locked extensions. That fixes a + never-ending loop occuring when running firefox for the first time in a + user account, while some global extensions are expired. + (Closes: #278722, #281537) + * debian/mozilla-firefox.prerm, debian/mozilla-firefox.preinst: Moved + removal of links to /usr/lib/mozilla-firefox/defaults/profile/extensions/ + sitting in /usr/lib/mozilla-firefox/extensions/, if any remaining, from + prerm to preinst. We remove them once and for all, they won't be created + by us anymore. + * debian/update-mozilla-firefox-chrome: + + Removed support for extensions in + /usr/lib/mozilla-firefox/defaults/profile/extensions/. + + Removed some clean-up that had been introduced to help the Extensions + Manager not to die, and which, actually, did not work out quite so well. + Anyways, with the changes this time, the EM is supposed to support much + more problems than ever before (as usual ;) ) so we don't need that + anymore. + + Avoid stupid mv error messages when firefox-bin -register fails (which + is not supposed to happen, but you're never too careful) + * debian/update-mozilla-firefox-chrome, debian/mozilla-firefox.preinst: + Move removal of some very old stuff to preinst, to do it once and for all + instead of doing it every time we run update-mozilla-firefox-chrome. + * netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp: Applied patch from + bz#124561 to get a prompt for username/password in case anonymous login + fails. + * debian/mozilla-firefox-runner: + + Added check for more arguments so that the url in the command line get + detected more accurately. + + When a file name is given on the command line, prepend "file://" and + change spaces into %20. (Closes: #281800) + + * Changes by Eric Dorland + * debian/mozilla-firefox.prerm: Patch from Philipp Weis to fix order of + find arguments. (Closes: #280852) + * debian/mozilla-firefox.desktop: Support new mime type handler in Gnome + 2.8. (Closes: #281274) (MH: I added some more myme-types) + * debian/mozilla-firefox.postinst: Run update-desktop-database if it + exists. + * widget/src/gtk/nsWidget.cpp: We don't use gtk anymore, might as well + revert these patches. Thanks Stephane Despret. + + -- Eric Dorland Thu, 18 Nov 2004 22:16:28 -0500 + +mozilla-firefox (1.0-2) unstable; urgency=low + + * Changes by Mike Hommey + * The "don't do too much on the same day, it's bad for health" release. + * debian/firefox.js: Re-activated the extensions update service, and + removed the update url. + * browser/app/profile/firefox.js: Sync'ed with debian/firefox.js. + * debian/mozilla-firefox-dom-inspector.preinst: Removed old inspector.js + file. + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in, + toolkit/mozapps/extensions/content/extensions.js: Disabled possibility + to update locked extensions and themes. Locked extensions being the + ones installed by the packaging system, they should be updated through + that. + * toolkit/mozapps/update/src/nsUpdateService.js.in: Disabled application + update functionnality. Firefox should be updated through the packaging + system. + * browser/components/prefwindow/content/pref-advanced.xul: Removed the + preferences panel item to activate application update, since it is + totally disabled. + * debian/mozilla-firefox-runner: Remove compatibility.ini instead of + compreg.dat. (Eric: This will cause a rebuild of the compreg.dat) + + * Changes by Eric Dorland: + * debian/mozilla-firefox.NEWS: Fix typos. + * README.Debian: + - Add note about application update being completely disabled. + - Fix path to XUL.mfsal + + -- Eric Dorland Wed, 10 Nov 2004 22:56:22 -0500 + +mozilla-firefox (1.0-1) unstable; urgency=medium + + * New upstream release (Closes: #280449) + + * Changes by Mike Hommey: + * netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp: Apply new patch + #164795 from bz#266835 + some tweaks as previously. This might lead to + encoding problems with the password, but it is supposed to be ASCII + anyway. + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Reworked the + previous patches so that the Extensions Manager shows extensions that + have been disabled due to version mismatch, and added a workaround so + that components registration works correctly. + * debian/update-mozilla-firefox-chrome: Removed part that is useless due + to last changes in the Extensions Manager. + * Make the inspector a real extension again: + - debian/inspector/00dom-inspector: File for + /var/lib/mozilla-firefox/extensions.d. + - debian/inspector/Uninstall: Uninstall file needed in extension + directory. + - debian/inspector/install.rdf: install.rdf taken from older versions, + and adapted to newer versions, adding registered chrome. + - debian/mozilla-firefox-dom-inspector.dirs: Removed. Everything will + be created by dh_install. + - debian/mozilla-firefox-dom-inspector.install: install + debian/inspector.rdf and most inspector files in the right place in + /usr/lib/mozilla-firefox/extensions/{641d8d09-7dda-4850-8228-ac0ab65e2ac9} + and /var/lib/mozilla-firefox + * Make the classic theme a real extension, even though it's still in + the main package: + - debian/theme/00classic: File for + /var/lib/mozilla-firefox/extensions.d. + - debian/theme/Uninstall: Uninstall file needed in extension + directory. + - debian/mozilla-firefox.install: Install all files in the right + place in + /usr/lib/mozilla-firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} + - debian/mozilla-firefox.dirs: Removed creation of + /usr/lib/mozilla-firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/chrome, + it will be done by dh_install. + - browser/app/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf.in: + Added chrome to be registered. + * Removed support for /var/lib/mozilla-firefox/chrome.d: + - debian/mozilla-firefox.dirs: Removed creation of the directory. + - debian/rules: Removed creation of files there, and put the + installed-chrome.txt, excluding inspector and classic theme stuff, + directly in /usr/lib/mozilla-firefox/chrome. + - debian/update-mozilla-firefox-chrome: Removed all + /var/lib/mozilla-firefox/chrome.d related stuff. + - debian/mozilla-firefox.links: Removed installed-chrome.txt link. + - toolkit/mozapps/extensions/src/nsExtensionManager.js.in: disable + extensions that fail to install chrome. + * debian/mozilla-firefox-runner: Remove user profile compreg.dat at + launch time. + * Moved some files in /var/lib/mozilla-firefox: + - debian/mozilla-firefox.links: Add a symlink for Extensions.rdf + and components.ini, from /usr to /var. + - debian/mozilla-firefox.prerm: Don't remove files we don't + provide and remove files at their new locations. + - debian/mozilla-firefox.preinst: Remove + /var/lib/mozilla-firefox/installed-chrome.txt. + - debian/update-mozilla-firefox-chrome: Create links for + Extensions.rdf and components.ini after register call, and remove + components.ini before. + * Clean-up in files generated by update-mozilla-firefox-chrome: + - debian/mozilla-firefox.links: Put all the links generated by + update-mozilla-firefox-chrome into the package. + - debian/mozilla-firefox.prerm: Remove all /var files generated + in the remove target, and changed the way we clean-up + /var/lib/mozilla-firefox. + * debian/mozilla-firefox.install: Removed chromelist.txt. + * Add support for extensions preferences: + - debian/update-mozilla-firefox-chrome: Handle + /usr/lib/mozilla-firefox/defaults.ini file. + - debian/mozilla-firefox.links: Add a symlink to /var for + defaults.ini. + - toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Added + defaults registration in -register command. + - mozilla-firefox-dom-inspector.install: Move inspector.js into + the appropriate extension specific directory. + * Move preferences back into /usr: + - debian/rules: Don't move the prefs into + /etc/mozilla-firefox/pref, and put the vendor thing into /usr + as well, and remove firefox-l10.js file. + - debian/mozilla-firefox.preinst: remove old prefs in /etc and + old symlink /usr/lib/mozilla-firefox/defaults/pref. + - debian/firefox.js: new Debian default preferences file. + - debian/mozilla-firefox.install: install firefox.js in + /etc/mozilla-firefox/pref. + - debian/mozilla-firefox.links: rename + /usr/lib/mozilla-firefox/defaults/pref symlink to + /usr/lib/mozilla-firefox/defaults/syspref. + - toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Added + a hook so that defaults/syspref gets registered in defaults.ini + after all other extensions preferences. + * debian/mozilla-firefox.preinst: only clean-up stuff if we are + upgrading from a version known to still have the files. Added some + more clean-up. + * debian/mozilla-firefox.install: Removed useless init.d. + * modules/libpref/src/init/all.js: Fixed all chrome URLs which refered to + mozilla stuff. + * debian/update-mozilla-firefox-chrome: Remove some more files before running + firefox-bin -register. + + * Changes by Eric Dorland: + * debian/mozilla-firefox.NEWS: Add warning about broken extension and + locale packages with this release. + * debian/mozilla-firefox-runner: Comment out warning about xprint, + xprint isn't necessarily needed for printing since postscript was + reenabled. (Closes: #279858) + + -- Eric Dorland Wed, 10 Nov 2004 00:33:44 -0500 + +mozilla-firefox (0.99+1.0RC1-4) unstable; urgency=low + + * debian/mozilla-firefox-runner: + - Fixed to run properly with dash. (Closes: #279549). + - Fixed indentation. + - Added a basic debugger support. + * debian/mozilla-firefox.1: Added information about debugger options. + * debian/rules: Added a debug option to DEB_BUILD_OPTIONS. If you want to + build a fully gdb'able package, use DEB_BUILD_OPTIONS="noopt nostrip + debug" + * netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp: Apply new patch from + bz#266835. + - Further change this patch to use Append rather than AppendLiteral, + which doesn't seem to exist. (ED) + + -- Mike Hommey Thu, 4 Nov 2004 22:01:51 +0900 + +mozilla-firefox (0.99+1.0RC1-3) unstable; urgency=low + + * netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp: Apply patch from + bz#266835 to fix anonymous user password issue. (Closes: #226784) + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in: (MH) + - Fully apply previous patches, which for some reason left a spurious code + line which made the extensions manager not like expired extensions + anymore. (Closes: #279140) + - Enhanced extensions manager so that the behaviour described in + https://bugzilla.mozilla.org/show_bug.cgi?id=247846#c14 *actually* + works. Extensions packagers are invited to move their chrome files + accordingly, and remove /var/lib/mozilla-firefox/chrome.d files so that + extensions chrome don't get registered when they are forced-disable due + to version mismatch or some other reason. + * debian/mozilla-firefox-runner: + - Fix some thinkos. (MH) + - Fix for loading files from the command line. (Closes: #279018) (MH) + - Removed setting --display from $DISPLAY, let it get it from the + environment, but pass --display if it is set. (Mike, + I'm worried this will screw up some session + managers, let me know what you think, we can revert it) + - Removed FIREFOX_OPEN_IN stuff, so that firefox now obeys to "open + links from other applications in" setting. (Closes: #279073) (MH) + - Enhanced command line parsing, and drop empty arguments. + (Closes: #279138) (MH) + - No need for a find to look for XUL.mfasl, we already have its + location from the path list taken from profiles.ini. (MH) + - Better detection of dsp wrapper, when FIREFOX_DSP=auto. + (Closes: #254611) (MH) + - Correctly open local files even when firefox was not previously + running. (Closes: #279018) (MH) + * debian/mozilla-firefox.1: (MH) + - Removed references to FIREFOX_OPEN_IN. + - Added the -safe-mode option. + * debian/mozilla-firefoxrc: Removed FIREFOX_OPEN_IN. (MH) + + -- Eric Dorland Tue, 2 Nov 2004 00:46:28 -0500 + +mozilla-firefox (0.99+1.0RC1-2) unstable; urgency=medium + + * browser/app/profile/firefox.js: Disable browser update checking by + default. + * debian/mozilla-firefox-runner: Apply patch from Aurelien Jarno to fix + variable name typo. (Closes: #278844) + + -- Eric Dorland Fri, 29 Oct 2004 23:50:59 -0400 + +mozilla-firefox (0.99+1.0RC1-1) unstable; urgency=medium + + * New upstream release. + * layout/xul/base/src/nsImageBoxFrame.{cpp,h}: Remove some conflicts + from a previous patch. + + -- Eric Dorland Thu, 28 Oct 2004 23:33:46 -0400 + +mozilla-firefox (0.10.1+1.0PR-5) unstable; urgency=low + + * debian/rules: (MH) + - Use upstream extensions set. This will eventually get a + correct help menu and fix some yet undiscovered UI issues. + (Closes: #257946) + - Added support for DEB_BUILD_OPTIONS=noopt. + - Changed OPTFLAGS assignment. + - Remove whitespace characters in version number for UserAgent + branding. + - Install mozilla-firefox-runner into /usr/lib/mozilla-firefox/firefox + (Closes: #278477) + * debian/mozilla-firefox.links: (MH) + - Link /usr/bin/firefox and /usr/bin/mozilla-firefox to + /usr/lib/mozilla-firefox/firefox. + - Removed obsolete profile/US links. + * debian/mozilla-firefox.dirs: Create /etc/mozilla/profile instead of + /etc/mozilla/profile/US. (MH) + * toolkit/xre/nsAppRunner.cpp: Fix crash in nsCmdLineService::Initialize + when argc is changed by gtk (when treating gtk specific arguments) + (MH) + * debian/mozilla-firefox-runner (Changes by MH): + - Removed workaround for bug #122990. First, xmlterm is not an activated + extension, and secondly, if it still requires the TERM environment + variable, it is the user's duty to set it to whatever he wants, not + firefox's start script's. + - Removed the ulimit -c setting. First, it is set by default to 0 on a + newly installed debian, and secondly, it is user's choice to set it or + not if he needs to get core files. + - Removed unused shell variables. + - Removed unsetting AUDIODEV variable. If it still crashes, it does belong + to some other code than firefox. The AUDIODEV environment variable is + used nowhere in firefox code: + http://lxr.mozilla.org/aviarybranch/search?string=AUDIODEV + Note that there is a "A crash which occurred when AUDIODEV doesn't + contain "/" was fixed." log message in esound version 0.2.33 changes and + that the bug may have belonged there. + - Replaced ${HOME}/.mozilla-firefoxrc file by a ${HOME}/.mozilla/firefox/rc + file. The former is still supported, though, but will bring a warning + message. If both are present, only the latter is taken into account. + - Changed the way system and user FIREFOX_DSP and FIREFOX_OPEN_IN + variables are handled. First, use system values defined in + /etc/mozilla-firefox/mozilla-firefoxrc, then override with + ${HOME}/.mozilla/firefox/rc and then with runtime environment variables. + - Don't die when DISPLAY is not set. Display can be passed by --display + option, and if not set and needed (some options don't require it), + firefox will complain. + - Some shell code simplifications by using some coreutils. + - Added better command line parsing. + - Added verbosity mode. + - Removed setting of FONTCONFIG_PATH, /usr/lib/mozilla-firefox/res/Xft + doesn't exist + - Factorized localization detection. + * debian/mozilla-firefox.1 (MH): + - Made some clean-up between dashes and hyphens. + - Removed obsolete options and added new ones. + - Added informations about some debian specific stuff. + * debian/update-mozilla-firefox-chrome: Changed the way we move files to + /var/lib/mozilla-firefox. It will avoid creating files with a * in their + name whenever registration failed. (MH) + * debian/README.Debian: Update java instructions, tell them to just use + java-package. + + -- Eric Dorland Thu, 28 Oct 2004 21:30:40 -0400 + +mozilla-firefox (0.10.1+1.0PR-4) unstable; urgency=medium + + * This release mostly courtesy Mike Hommey. + * layout/src/xul/base/src/nsImageBoxFrame.*: Backported patch from + bz#255372. (Closes: #278046) + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Force locking + globally installed extensions, that will prevent extensions packages + files to be unexpectedly removed by firefox. + * debian/control: Add Mike Hommey as an Uploader. + * debian/mozilla-firefox.install: Removed content-packs.jar which is + mozilla-browser specific. + * debian/mozilla-firefox.dirs: + - Remove leading /'s. + - Create + /usr/lib/mozilla-firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} + /chrome directory so that preview is shown in the Themes Manager. Yes, + this is stupid, but it is the way firefox wants it (and it's not even + created by make install, nor in the official binary tarball. It is + only created at run time, but you know what ? under *nix, a normal + user can't create that directory) (Closes: #276404) + * debian/rules: Add a /etc/mozilla-firefox/pref/vendor.js file adding + the debian package version to the UserAgent. (Closes: #268654) + * debian/README.Debian: Update java instructions. I'd love some more + definitive pointers. (Closes: #277983) + + -- Eric Dorland Tue, 26 Oct 2004 00:11:48 -0400 + +mozilla-firefox (0.10.1+1.0PR-3) experimental; urgency=low + + * debian/control: + - Rename the mozilla-firefox-gnome-vfs package + mozilla-firefox-gnome-support since it does more than vfs. No + need for Replaces or anything, since it never actually made it to + the archive. + - Remove strict build dependencies on g++ and binutils, since the + fixed versions have hit sarge. + - Remove hppa build depends, since gcc has also been fixed there. + - Build-depend on libgnome2-dev and libgconf2-dev to build in more + gnome support. + - Have mozilla-firefox recommend it's gnome support. + * debian/rules: + - Remove hppa CC redefinitions. + - Exclude *gnome* not just *gnomevfs*. + - dh_install for gnome-support. + * debian/mozilla-firefox-gnome-vfs.*: Rename to + mozilla-firefox-gnome-support.*. + * debian/mozilla-firefox-gnome-support.install: Grab *gnome*, not just + *gnomevfs*. + + -- Eric Dorland Thu, 21 Oct 2004 23:04:53 -0400 + +mozilla-firefox (0.10.1+1.0PR-2) experimental; urgency=low + + * debian/mozilla-firefox-runner: + - Patch from Sam Morris to handle cleanup of directories with + unusual names. + - Fix return value check, patch from rgselk. (Closes: #269690) + * debian/mozilla-firefox.1: List full path to firefox-bin. (Closes: + #275563) + * debian/rules: + - --with-gssapi=/usr, enable Negotiate extension. (Closes: + #274258) + - Enable gnomevfs support, + * debian/control: + - Build-depend on libkrb5-dev. + - Build-depend on libgnomevfs2-dev. + - New gnomevfs package, based on work by Mike Hommey. (Closes: + #262062) + * debian/mozilla-firefox-gnome-vfs.post{inst,rm}: Added, same as + corresponding files from mozilla-firefox-dom-inspector. + * debian/mozilla-firefox-gnome-vfs.install: Install gnomevfs components. + * browser/app/profile/firefox.js: Set + network.negotiate-auth.trusted-uris to https:// to enable the + negotiate extension over secure links. + * config/rules.mk: Tweak patch from Thiemo Seufer to include svg_doc in + non-optimization. (Closes: #273353) + + -- Eric Dorland Sun, 17 Oct 2004 21:25:08 -0400 + +mozilla-firefox (0.10.1+1.0PR-1) experimental; urgency=critical + + * New upstream release, fixes security issue bz#259708. (Closes: + #274493) + + -- Eric Dorland Sun, 3 Oct 2004 03:32:43 -0400 + +mozilla-firefox (0.10+1.0PR-1) experimental; urgency=low + + * New upstream release. (Closes: #273700, #267003) + * toolkit/mozapps/extensions/src/nsExtensionManager.js.in, + netwerk/dns/src/nsIDNService.cpp, + modules/libpr0n/decoders/bmp/nsBMPDecoder.cpp, + gfx/src/windows/nsImageWin.cpp, gfx/src/shared/gfxImageFrame.cpp, + browser/app/profile/firefox.js: Resolve conflicts between my tree and + upstream. + * browser/app/Makefile.in: Fix $(DESTDIR) variable. + * accessible/src/atk/nsAccessibleWrap.cpp, + accessible/src/atk/nsAccessibleWrap.h: Apply patch from bugzilla for + alpha fix that's more likely to make it into CVS. + * debian/update-mozilla-firefox-chrome: Patch from Mike Hommey to make + update-mozilla-firefox-chrome more verbose on -v. + * debian/rules: + - Remove typeaheadfind for new find toolbar to work. (Mike Hommey) + (Closes: #267170) + - Changes to reflect new upstream files. + * debian/control: + - Remove build-depend on libcairo-dev. + - Build depend on libxt-dev, seems to be necessary now. (Closes: + #274311) + * debian/docs: Removed, as browser/README.html disappeared. (Mike Hommey) + * debian/mozilla-firefox.dirs: + - Changes to reflect new upstream files. + - Removed obsolete libnullplugin.so. + * debian/mozilla-firefox.install: + - Remove .jar's that aren't there anymore. + - Removed obsolete libnullplugin.so. + * debian/mozilla-firefox-dom-inspector.dirs, + debian/mozilla-firefox-dom-inspector.install, debian/rules: Upstream + doesn't consider DOM Inspector as a real extension, and do not provide + the appropriate files to make it appear in the extensions + manager. Removed all the extension related stuff in the package. (Mike + Hommey) + * other-licenses/libart_lgpl: Removed, was for SVG, no longer needed. + * modules/plugin/samples/default/unix/*: Reverted debian specific + changes, we don't want them in the diff since libnullplugin won't get + installed. + + -- Eric Dorland Fri, 1 Oct 2004 18:50:46 -0400 + +mozilla-firefox (0.9.3-6) unstable; urgency=high + + * gfx/src/gtk/fontEncoding.properties: Uncomment symbol fonts. (Closes: + #272927) + * debian/control: Build-depend on binutils (>= 2.15-4) but only on mips + and mipsel. (Closes: #273353) + * configure.in, configure, rules.mk: Patch from Thiemo Seufer to + increase stability and performance on mips. (Closes: #272159) + * debian/mozilla-firefox-runner: Detect failure of ping() + better. (Closes: #267393) + * layout/html/document/src/html.css: Testing fix for xprint problems. + + -- Eric Dorland Mon, 27 Sep 2004 17:07:37 -0400 + +mozilla-firefox (0.9.3-5) unstable; urgency=high + + * debian/update-mozilla-firefox-chrome: Apply another patch form Mike + Hommey to fix a few more issues in the script. (Closes: #271480) + * Fixes to Secunia security bugs, ported from bugzilla: + (Closes: #271888) + - browser/base/content/browser.js, + xpfe/communicator/resources/content/contentAreaDD.js: Fix for + drag and drop exploit, bz#250862. + - caps/include/nsScriptSecurityManager.h, caps/src/caps.properties, + caps/src/nsScriptSecurityManager.cpp: Fix for enablePrivilege + exploit, bz#253942. + - gfx/src/shared/gfxImageFrame.cpp, gfx/src/windows/nsImageWin.cpp, + modules/libpr0n/decoders/bmp/nsBMPDecoder.cpp: Fix for various + overflows in the BMP code, bz#255067. + - netwerk/dns/src/nsIDNService.cpp: Fix for bug in non-ASCII + characters in domain names, bz#256316 + - content/xbl/src/nsXBLPrototypeHandler.cpp: Clipboard injection + fix, bz#257523. + + -- Eric Dorland Thu, 16 Sep 2004 20:06:47 -0400 + +mozilla-firefox (0.9.3-4) unstable; urgency=high + + * Urgency high, go into testing dammit! + * Apply patch from Mike Hommey as -3.1, which wasn't actually + released. See below. (Closes: #271480) + * debian/rules: Patch from Matthew Mueller to fix underquoted + argument. (Closes: #271432) + * debian/control: Build depend on binutils (>= 2.15-3) with fixed mips + support. We still need a fixed gcc. + + -- Eric Dorland Mon, 13 Sep 2004 20:41:27 -0400 + +mozilla-firefox (0.9.3-3.1) unstable; urgency=low + + * debian/rules: removed + /usr/lib/mozilla-firefox/defaults/profile/extensions/installed-extensions.txt + * debian/update-mozilla-firefox-chrome: + + Added a "verbose" mode. + + Added warning messages (only shown in verbose mode) about some + extensions specific issues. This is intended to be useful for extensions + maintainers. + + Check if the installed-extensions.txt file disappears, which tells if the + mozilla-firefox -register went ok. + * debian/update-mozilla-firefox-chrome.8: + + Fixed typos. + + Added reference to the -v option for the verbose mode. + * debian/mozilla-firefox-runner: enhanced the profile directory check. It + didn't work if the path indicated in the profiles.ini was not absolute. + + -- Mike Hommey Mon, 13 Sep 2004 20:31:21 +0900 + +mozilla-firefox (0.9.3-3) unstable; urgency=high + + * Acknowlege NMU from Mike Hommey. He did a fantastic job in porting a + large amount of fixes from upstream CVS. I owe him several large + beverages of his choice. (Closes: #259046, #259836) + * Port all of Mike's changes to my local CVS. + * debian/mozilla-firefox-runner: + - Pass command-line arguments to get_locale so they can actually + be used. (Closes: #240058) + - Apply patch from Mike Hommey to use the profiles.ini to find the + path to the profile to clean XUL.mfasl. (Closes: #267326) + * debian/update-mozilla-firefox-chrome: Patch from Mike Hommey to fix + some bashisms introduced by his NMU. + * xpcom/reflect/xptcall/src/md/unix/Makefile.in, + xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s, + xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s.m4, + xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s: Patch from + Thiemo Seufer to fix mips. This requires patches to gcc and binutils + to work and fully close #270621. + + -- Eric Dorland Wed, 8 Sep 2004 21:13:35 -0400 + +mozilla-firefox (0.9.3-2.2) unstable; urgency=high + + * The "never edit the diff file unless you're sure nothing will be + missing" release. + * debian/mozilla-firefox.prerm: restore the uncut version. + * debian/control, debian/rules: Use gcc-3.2 to build on hppa, because of + toolchain bug #254549. + + -- Mike Hommey Mon, 23 Aug 2004 19:45:54 +0900 + +mozilla-firefox (0.9.3-2.1) unstable; urgency=high + + * Non Maintainer Upload for RC Fixes. + * Applied changes to toolkit/mozapps/extensions/src/nsExtensionManager.js.in + and toolkit/mozapps/extensions/locale/extensions.properties to solve some + issues with extensions management. (taken from CVS) + * Applied other changes to + toolkit/mozapps/extensions/src/nsExtensionManager.js.in, + toolkit/mozapps/extensions/public/nsIExtensionManager.idl and + mozilla/toolkit/xre/nsAppRunner.cpp to be able to use -register + instead of -list-global-items for extensions/components/chrome + registration through update-mozilla-firefox-chrome, thus not needing + Xvfb anymore (-register option doesn't require a X server). + (taken from CVS) + * Applied some more changes to + toolkit/mozapps/extensions/src/nsExtensionManager.js.in in order to + avoir overlayinfo deletion during extensions registration process. + (taken from CVS) + * Final changes to toolkit/mozapps/extensions/src/nsExtensionManager.js.in + to avoid registering out of date extensions so that firefox doesn't enter + a loop at startup when no profile was found, and to only write in the + installed-extensions-processed.txt file the list of actually installed + extensions. Note that for packaged extensions installing their files + directly into the chrome or components directories, that only means they + won't appear in the Extensions Manager. They will still be available in + the GUI. + * All these fixes improve the Extensions Manager. Closes: #259046. + * accessible/src/atk/nsAccessibleWrap.cpp, + accessible/src/atk/nsAccessibleWrap.h: fixed 32-bit abuse of gobject + (Steve Langasek). Closes: #259836. + * debian/control: Removed dependency upon xvfb. + * debian/update-mozilla-firefox-chrome: + + Removed use of Xvfb. + + Removed creation of a root default profile, but kept the fake home + hack to avoid creation of a .mozilla directory in root's home. + + Changed extensions handling so that the overall process is cleaner. + Extensions packages will have to move extensions {uid} directories + to /usr/lib/mozilla-firefox/extensions/, while the current location + is still supported for compatibility purpose (but is strongly not + recommended). + + Removed use of regxpcom and regchrome, since what they both do is + done by firefox-bin -register. + * debian/rules: force GnomeVFS support to be disabled. (Josselin Mouette) + * debian/README.Debian: + + Added a note about potential problems with packaged "old" extensions. + + Added a note about how to manually disable packaged extensions in user + profile. + + Removed some old notes that don't apply anymore. + * debian/mozilla-firefox-dom-inspector.install, debian/rules: Move + extensions files to /usr/lib/mozilla-firefox/extensions/ instead of + /usr/lib/mozilla-firefox/defaults/profile/extensions/. + * debian/mozilla-firefox.links: Move installed-extensions.txt symlink + from /usr/lib/mozilla-firefox/defaults/profile/extensions/ to + /usr/lib/mozilla-firefox/extensions/. + * debian/mozilla-firefox.prerm: More cleanup on removal of package. + + -- Mike Hommey Sun, 22 Aug 2004 21:43:47 +0900 + +mozilla-firefox (0.9.3-2) unstable; urgency=low + + * xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s.m4: Comment out + NARGSAVE, like I did in 0.9.1-7, should fully fix #262571. + * debian/mozilla-firefox.preinst: Remove brace expansion + bashism. (Closes: #264200) + * debian/control: Depend on debianutils (>= 1.16) since we use mktemp + -d. (Closes: #263958) + * debian/mozilla-firefox-runner: Make -contentLocale COUNTRY, not + lang-COUNTRY. (Closes: #263940) + + -- Eric Dorland Sun, 8 Aug 2004 23:41:02 -0400 + +mozilla-firefox (0.9.3-1) unstable; urgency=low + + * New upstream release. (Closes: #263193) + * debian/update-mozilla-firefox-chrome.8: Add manpage from Mark Suter + for update-mozilla-firefox-chrome.8. (Closes: #263149) + * debian/mozilla-firefox.manpages: Add update-mozilla-firefox-chrome.8. + * debian/control: Add build-deps on gcc-3.4 for amd64. (Closes: #262679) + + -- Eric Dorland Wed, 4 Aug 2004 20:21:22 -0400 + +mozilla-firefox (0.9.1-7) unstable; urgency=low + + * debian/mozilla-firefox-runner: + - Reintroduce check for command-line arguments (I broke this last + release). (Closes: #262692, #262462, #262537, #262588, #262727) + - Allow overriding of -contentLocale and -UILocale. (Closes: + #240058) + * xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s: Comment out + NARGSAVE reassignment, it is defined elsewhere. (Closes: #262571) + * debian/rules: Force amd64 to build with gcc 3.4. (Closes: #262679) + + -- Eric Dorland Mon, 2 Aug 2004 10:16:46 -0400 + +mozilla-firefox (0.9.1-6) unstable; urgency=low + + * widget/src/gtk2/keysym2ucs.c: Patch from Eugeniy Meshcheryakov to + allow mozilla firefox to enter a ghe with upturn. (Closes: #261543) + * debian/mozilla-firefox-runner: + - Remove some mail and composer cruft. + - Add warning if DISPLAY is not set. (Closes: #261465) + + -- Eric Dorland Thu, 29 Jul 2004 22:49:59 -0400 + +mozilla-firefox (0.9.1-5) unstable; urgency=low + + * debian/control: Goodbye mozilla-firebird transition package. + * debian/mozilla-firefox-runner: Add -a firefox flag when running + firefox-bin. (Closes: #259237) + * debian/mozilla-firefox.desktop: Add GenericName field. + * debian/update-mozilla-firefox-chrome: Fix quoting problem with + {*}. (Closes: #257243) + * debian/rules: + - Re-enable postscript printing support, since the security + issues turned out to be bogus. (Closes: #257628) + - Disable SVG support, it's still too broken to be usable. + (Closes: #259544) + + -- Eric Dorland Sun, 18 Jul 2004 20:09:14 -0400 + +mozilla-firefox (0.9.1-4) unstable; urgency=low + + * The "Let's try unstable" release. There are still issues, but there + are issues with 0.8 as well, so no more point in waiting. + * debian/update-mozilla-firefox-chrome: + - Copy over empty Extensions.rdf file on update. (Closes: #257243) + - Increase sleep to 15 seconds, hopefully this will work on most + people's machines. + * My apologies to Mike Hommey for mispelling his name in last release. + + -- Eric Dorland Sun, 11 Jul 2004 23:51:24 -0400 + +mozilla-firefox (0.9.1-3) experimental; urgency=low + + * Ok, I was wrong, we're still in experimental. I think we need to fix a + few more issues before getting this in unstable, like #257258, and + make sure the hacky extensions mechanism is more bullet-proof. + * debian/rules: --disable-installer, since we don't use it. + * debian/update-mozilla-firefox-chrome: + - Wait 8 seconds instead of 5 for the hack, might help some + people reporting problems. + - Remove ${LIBDIR}/extensions/{*}. I may move that to + /var/lib/mozilla-firefox eventually, but let's leave it for now. + * debian/mozilla-firefox.png.uu: Make a nicer png icon, based on the + about box graphic. + * debian/mozilla-firefox.preinst: Remove old config files in + /etc/mozilla-firefox/pref. (Closes: #257711, 257557) + * browser/app/profile: firefox.js: Revert change to app.version, + apparently it breaks extensions. (Closes: #257941) + + -- Eric Dorland Wed, 7 Jul 2004 21:26:55 -0400 + +mozilla-firefox (0.9.1-2) experimental; urgency=low + + * The "Mike Homey, lord of the bugs" release. Thanks to Mike for being a + huge help with bug triage. That's right, help with bugs and your name + could have a prestigious place in the changelog. + * I'd like my next release to be to unstable, so let me know about + profile transition bugs, etc. + * debian/control: Build-depend on libcairo1-dev. + * debian/rules: Enable svg support using cairo renderer. (Closes: + #215990) + * debian/mozilla-firefox-xremote-client: Add -a firefox switch to make + the remote client find firefox only. Thanks Jonathan Black. (Closes: + #256967) + * debian/mozilla-firefox.desktop: Make comment Gnome HIG + compliant. (Closes: #257592) + * browser/app/profile/firefox.js: + - app.version = 0.9.1. + - Disable app updates by default. We're debian, we handle updates. + * debian/update-mozilla-firefox-chrome: + - Remove installed-extensions-processed.txt before regenerating. + (Closes: #257243) + - Take some, but not all advice from Alexandru Fomin. Improve Xvfb + and extension registration hacks. + + -- Eric Dorland Sun, 4 Jul 2004 16:58:17 -0400 + +mozilla-firefox (0.9.1-1) experimental; urgency=low + + * New upstream release. + * config/autoconf.mk.in: Alright, /usr/lib/firefox-0.9 was a bad idea, + use /usr/lib/mozilla-firefox. Change all the instances + /usr/lib/firefox-0.9 back to /usr/lib/mozilla-firefox. I feel + silly. (Closes: #256991) + * debian/mozilla-firefox-runner: Actually check for the existence of the + .mozilla/firefox directory before trying to clean it. + * debian/update-mozilla-firefox-runner: + - Call firefox-bin, not firefox you silly goose. + - Use mozilla-firefox tempfile, not mozilla-browser. + - The horrible hackiness continues: For my previous hack to work, + I need to preseed a profile directory in the home directory I + create. Now things should work. (Closes: #256812) + + -- Eric Dorland Thu, 1 Jul 2004 17:16:29 -0400 + +mozilla-firefox (0.9-1) experimental; urgency=low + + * New upstream release. There may be regressions from 0.8. (Closes: + #254522) + * widget/src/gtk/nsGtkMozRemoteHelper.cpp, + widget/src/gtk2/nsGtkMozRemoteHelper.cpp, + widget/src/xremoteclient/XRemoteClient.cpp: Fix previously applied to + fix -remote behaviour undone. Mozilla now includes the program name in + the properties to distinguish between various Mozilla apps. + * xpcom/reflect/xptcall/src/md/unix/Makefile.in: remove extra endif. + * dom/public/idl/core/nsIDOMNSDocument.idl: Reintroduce referrer + attribute that got lost somehow. + * content/events/src/nsEventStateManager.cpp: Fix a strange broken + function call to GetContainer. + + * debian/rules: + - Follow upstream and --enable-single-profile and + --disable-profilesharing. + - Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. + - --user-app-dir=.mozilla to jive with new location. + - Remove dom-inspector extension dir from the regular package. + * debian/control: Depend on xvfb for insane hack below. + * debian/mozilla-firefox.install: + - Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. + - Remove ipc dir, mozipcd. + - Add init.d, greprefs dirs. + * debian/mozilla-firefox.dirs: + - Add /var/lib/mozilla-firefox/extensions{,.d} + * debian/mozilla-firefox-dom-inspector.dirs: Add + /var/lib/mozilla-firefox/extensions.d. + * debian/mozilla-firefox-dom-inspector.install: + - Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. + - Install dom-inspector extension dir. + * debian/mozilla-firefox.links: + - Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. + - Link /usr/lib/mozilla-firefox to /usr/lib/firefox-0.9. + - Link installed-extensions.txt to our place in + /var/lib/mozilla-firefox. + * debian/mozilla-firefox-runner: + - Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. + - Fix xprintorg typo. (Closes: #255706) + - Search .mozilla/firefox for XUL.mfasl files. + * debian/mozilla-firefox-xremote-client: Replace + /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. + * debian/update-mozilla-firefox-chrome: + - Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. + - Capture return values from reg* commands on error, stolen + from mozilla source. + - Remove returns from check_running. + - Pull in snippets from /var/lib/mozilla-firefox/extensions.d + to generate installed-extensions.txt for new extensions mechanism. + - An insane hack, but necessary because of upstream: Launch a Xvfb + to run firefox to generate the necessary extension metadata. I've + been told this will not be necessary in the next version. + + -- Eric Dorland Mon, 28 Jun 2004 23:40:59 -0400 + +mozilla-firefox (0.8-12) unstable; urgency=low + + * The "Last Chance Before 0.9" release. + * debian/mozilla-firefox-runner: Fix unescaped \n, thanks Olly + Betts. (Closes: #252436) + * debian/update-mozilla-firefox-chrome: Watch out for empty + LD_LIBRARY_PATH. Thanks George Cristian Birzan. (Closes: #254142) + * debian/README.Debian: Restructure and update a bit. + * debian/presubj: Add bug information from README.Debian for reportbug. + * debian/mozilla-firefox.install: Install the presubj. + + -- Eric Dorland Mon, 14 Jun 2004 19:39:27 -0400 + +mozilla-firefox (0.8-11) unstable; urgency=low + + * Apply amd64 fix from #249211. + * debian/README.Debian: Shamelessly stole the java plugin installation + instructions from the mozilla package. (Closes: #243513) + * nsCommonWidget.cpp, nsCommonWidget.h, nsWindow.cpp: Apply patch (with + some hand massaging) from upstream bugzilla bug #209342 to fix initial + window placement. (Closes: #235209, 241519) + * nsprpub/pr/src/misc/prnetdb.c: Apply patch from Miquel van Smoorenburg + to prevent unless reverse DNS lookups. (Closes: #251978) + * debian/mozilla-firefox-runner: Apply patch from Jasper Spaans to fix + remote xprint printing. (Closes: #252072) + + -- Eric Dorland Tue, 1 Jun 2004 23:12:36 -0400 + +mozilla-firefox (0.8-10) unstable; urgency=low + + * debian/mozilla-firefox.install: Don't install uuencoded file. (Closes: + #251441) + * debian/mozilla-firefox-runner: unset AUDIODEV which can cause + crashes. Thanks Christopher Armstrong. (Closes: #236231) + * update-mozilla-firefox-chrome: Port security fix from #249613 to + handle insecure tempfile creation. + * debian/rules: Following the advice of #247585 I'm disabling postscript + printing. Perhaps this will alleviate some of the other printing + problems. + + -- Eric Dorland Sun, 30 May 2004 01:47:52 -0400 + +mozilla-firefox (0.8-9) unstable; urgency=low + + * debian/control: + - Suggest latex-xft-fonts for MathML fonts. Thanks Michael + JasonSmith. (Closes: #216925) + - Build depend on libx11-dev & libxp-dev instead of xlibs-dev to + reflect new X packages. + * widget/src/gtk2/nsWindow.cpp: Apply patch from Peter Colberg to ignore + unused mouse buttons. (Closes: #244305) + * debian/README.Debian: Document the fact that the loopback interface + has to be up and unfiltered for things to work right. + + -- Eric Dorland Wed, 5 May 2004 23:30:42 -0400 + +mozilla-firefox (0.8-8) unstable; urgency=low + + * security/nss/lib/freebl/unix_rand.c: Remove code that called netstat + to gain so entropy. It's pretty useless on a Linux system. Thanks + Wichert. (Closes: #241200) + * debian/README.Debian: Add note about changing the button order in the + dialog boxes. (Closes: #240261) + * debian/control: Add dummy package for mozilla-firebird to smooth + upgrades. (Closes: #235577) + + -- Eric Dorland Sat, 3 Apr 2004 16:19:34 -0500 + +mozilla-firefox (0.8-7) unstable; urgency=low + + * debian/mozilla-firefox-runner: + - Cleanup XUL.mfasl whenever firefox is run with no + command-line. (Closes: #238717) + - Add patch from Laurent Buffler to add config to allow + new tabs to be opened instead of new windows. (Closes: #239323) + * debian/mozilla-firefoxrc: Put the new FIREFOX_OPEN_IN variable in + there and document it's use. + + -- Eric Dorland Sat, 27 Mar 2004 17:21:51 -0500 + +mozilla-firefox (0.8-6) unstable; urgency=low + + * debian/control: Build-depend on g++-3.3 (>= 3.3.3-4) to work around + broken 3.3.3-3 release. (Closes: #238318, #238241, #238441, #238523, + #238534) + * debian/rules: Install new small-firefox icon. + * debian/mozilla-firefox{.png, .xpm, -small.xpm}: Use the new DFSG-free + icons, the old pretty ones are trademarked and not DSFG-free. I know, + it's stupid. Complain to the Mozilla Foundation, not me. (Closes: + #234869) + + -- Eric Dorland Sun, 21 Mar 2004 22:09:16 -0500 + +mozilla-firefox (0.8-5) unstable; urgency=low + + * Rebuild with g++-3.3 3.3.3-2 to work around broken g++. (Closes: + #238318) + + -- Eric Dorland Wed, 17 Mar 2004 21:38:58 -0500 + +mozilla-firefox (0.8-4) unstable; urgency=low + + * debian/README.Debian: + - Tell people not to remove their ~/.firefox directory. Just move it + out of the way. (Closes: #235594) + - Add notes about the sound dsp. (Closes: #236678) + * debian/mozilla-firefox-runner: + - Don't redirect stderr. (Closes: #236160) + - Add get_locale code from Aurelien Jarno (Closes: #235521) + - Fix dsp auto-detection code. (Closes: #236678) + * debian/rules: Add default locale file. + * debian/mozilla-firefox.dirs: Add locales dir. + + * browser/app/profile/all.js, + content/events/src/nsEventStateManager.cpp, + modules/libpref/src/init/all.js, widget/public/nsGUIEvent.h, + widget/src/gtk/nsWidget.cpp: Reapply extended mouse events patch from + Derek Upham. (Closes: #235385, #230876) + * browser/base/content/browser-sets.inc: Make ESC stop animations + again. (Closes: #235474) + + -- Eric Dorland Tue, 16 Mar 2004 00:31:19 -0500 + +mozilla-firefox (0.8-3) unstable; urgency=low + + * debian/mozilla.firefox.menu: Change the case of + mozilla-Firefox. (Closes: #234982, #234755) + * debian/NEWS.Debian: Move to debian/mozilla-firefox.NEWS so that it + actually gets installed. (Closes: #234700) + * debian/update-mozilla-firefox-chrome: Setup dummy home directory to + capture silly .firefox directory. (Closes: #234855) + * debian/mozilla-firefox.png.uu, debian/mozilla-firefox.xpm: Use the + new, pretty mozilla-firefox icons. (Closes: #234869) + * debian/rules: Install the pretty icon in the right places. + + -- Eric Dorland Thu, 26 Feb 2004 21:10:27 -0500 + +mozilla-firefox (0.8-2) unstable; urgency=low + + * The "what he taketh, he giveth back" release. + * debian/rules: + - Disable the wallet extension, this really closes #222447. + - Remove some more cruft left over from the patch system. + - Reinstall the dom-inspector. + * debian/control: Add the dom-inspector back, now that it is supported + upstream. + * debian/mozilla-firefox-dom-inspector.{install,dirs,postinst,postrm}: + Bring these files back. + * docshell/base/nsWebShell.cpp: Only do keyword lookup on when DNS + entries don't exist. (Closes: #233916, #218033, #211524) + + -- Eric Dorland Mon, 23 Feb 2004 21:48:03 -0500 + +mozilla-firefox (0.8-1) unstable; urgency=low + + * The "Let's Change Our Name Every Other Day" release. + * New upstream release, mozilla-firebird has been renamed to + mozilla-firefox. Let's hope it lasts. (Closes: #231903, #222447) + * debian/mozilla-firebird.*: Renamed to debian/mozilla-firefox.*. + + * debian/README.Debian: Update for firefox, remove blurb about the + inspector. + * debian/NEWS.Debian: Explain how to move your configs over. I may make + this automatic if enough people complain, but I'm loathe to muck + around in pople's home directories. + + * debian/control: + - Rename the package. + - Tweak description to list Firefox's previous aliases. + - Remove conflicts on mozilla-firebird-dom-inspector. + + * debian/rules: + - s/firebird/firefox/g, s/MozillaFirebird/firebird/g. + - Comment out some old inspector code. + - Remove unused patch subsystem. + - Disable gtktest. We don't need no stinking tests. + - Remove disable plaintext editor line, not sure why it's there. + - Disable LDAP support. We don't use it. + - Remove executable bit on *.so files. + - Remove useless preference files. + - Exclude the inspector files. + - Don't remove installed-chrome, we don't install it anymore. + - user-app-dir = .firefox. (Closes: #212301) + - export MOZILLA_OFFICIAL for the build ID. (Closes: #231133) + + * debian/mozilla-firefox-runner: + - s/firebird/firefox/g. + - Remove composer and editor functions. + - Use .firefox directory. + + * debian/mozilla-firefox.install: + - s/firebird/firefox/g, s/MozillaFirebird/firefox/g. + - Don't install timebombgen. + - Install icons directory. + - Don't install installed-chrome.txt, we just remove it anyway. + + * debian/mozilla-firefox.desktop, debian/mozilla-firefox.dirs, + debian/mozilla-firefox.manpages, debian/mozilla-firefox.links, + debian/mozilla-firefox.menu, debian/mozilla-firefox.mime, + debian/mozilla-firefoxrc, debian/mozilla-firefox.postinst, + debian/mozilla-firefox.prerm, debian/update-mozilla-firefox-chrome, + debian/mozilla-firefox.1, debian/mozilla-firefox-xremote-client: + s/firebird/firefox/g, s/MozillaFirebird/firefox/g. + + * debian/mozilla-firefox.links: Link mozilla-firefox.1 to firefox.1. + + * debian/mozilla-firefox.preinst: Remove, at least with the rename I can + erase some of my previous blunders. + + * debian/mozilla-firefox.{png.uu,xpm}: Use the package icon. + + * browser/app/nsBrowserApp.cpp: Change package name to Firefox, so now + the ~/.firefox is used. (Closes: #196550) + + * browser/app/profile/all.js: Merge in autoscroll fixes. + * browser/base/content/browser-sets.inc: Merge in upstream stop button + fix. + * modules/plugin/samples/default/unix/nullplugin.c: Merge in removal of + commented code. + * nsprpub/pr/include/md/_linux.cfg, nsprpub/pr/include/md/_linux.h, + security/coreconf/Linux.mk: Merge in hppa build fixes from upstream. + * config/autoconf.mk.in: Install into /usr/lib/mozilla-firefox now. + * content/base/src/nsDocumentViewer.cpp: Remove redundant stop patch + since it has been merged upstream. + * content/events/src/nsEventStateManager.cpp, + modules/libpref/src/init/all.js, widget/src/gtk/nsWidget.cpp: Revert + back to upstream version. There was a patch here to add support for + extended mouse buttons, but I'm removing it since I don't trust that + it works in the new version correctly. Send me another patch if you + want this functionality back. + * toolkit/components/passwordmgr/base/nsPasswordManager.cpp: Revert this + back to upstream, I'm not sure which patches I applied to this file, + likely something to try and fix the double password prompt. + * widget/src/xremoteclient/XRemoteClient.cpp, + widget/src/xremoteclient/XRemoteClient.h: Revert to upstream version, + I believe it does the right thing now, but the patch I used does not + apppear to have been used. Restore the properties to _FIREFOX_* + though. + * widget/src/gtk/nsGtkMozRemoteHelper.cpp, + widget/src/gtk2/nsGtkMozRemoteHelper.cpp: Change the _FIREBIRD_* to + _FIREFOX_* here as well. + * content/base/src/nsDocument.cpp: Comment out nsDocument::GetDomConfig, + needed to get things to compile. + + -- Eric Dorland Sun, 15 Feb 2004 21:28:45 -0500 + +mozilla-firebird (0.7-7) unstable; urgency=low + + * debian/mozilla-firebird-runner: Open a new window when loading a + regular file. (Closes: #228853) + + -- Eric Dorland Thu, 29 Jan 2004 22:12:30 -0500 + +mozilla-firebird (0.7-6) unstable; urgency=medium + + * The "Indian-giver-christmas" release. + * Urgency medium since we're closing some critical bugs that need to get + in before a freeze. + * Completely remove mozilla-firebird-dom-browser. No one stepped up to + help fix it's brokeness in 0.7 and I don't use it or particularly care + about it. So it is no more. If someone steps up to take responsibility + I might put it back, but otherwise it may RIP. (Closes: #222085) + * debian/mozilla-firebird-runner: Remove XUL.mfasl uncoditionally + now. There is a corner case where this file is corrupted on upgrade + when firebird was running. This is a total hack, and not an elegant + solution, but at least it fixes the problem. (Closes: #224779, + #224323) + * debian/control: Conflict against old mozilla-firebird-dom-inspector + since it doesn't work anymore. + + -- Eric Dorland Thu, 25 Dec 2003 15:54:21 -0500 + +mozilla-firebird (0.7-5) unstable; urgency=low + + * browser/base/content/browser-sets.inc: Patch to make ESC stop actually + work. (Closes: #223382) + * debian/rules: Turn down optimizations on sparc. (Closes: #223760) + + -- Eric Dorland Sun, 14 Dec 2003 23:01:59 -0500 + +mozilla-firebird (0.7-4) unstable; urgency=low + + * The "All of Takuo's hard work really pays off" release. + * toolkit/components/passwordmgr/base/nsPasswordManager.cpp: Patch from + upstream bugzilla (#220214) to fix double password prompt + problem. (Closes: #222696) + * xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s.m4: Stolen + patch from mozilla package to make mozilla-firebird build on + mips. (Closes: #222743) + * content/base/src/nsDocumentViewer.cpp: Port yet another patch to allow + the ESC key to stop animated gifs. (Closes: #223382) + + -- Eric Dorland Mon, 8 Dec 2003 23:59:16 -0500 + +mozilla-firebird (0.7-3) unstable; urgency=low + + * debian/control: Add dependency on psmisc since we use fuser. Thanks + Daniel Schröter. + * widget/src/xremoteclient/XRemoteClient.{cpp,h}: Apply patch from + bugzilla to fix -remote behaviour on modern WMs. Thanks Nikolai + Prokoschenko. (Closes: #197632) + * nsprpub/pr/src/misc/prdtoa.c: Apply fix from mozilla package (#215067) + to fix building on arm. This is a partial fix to #222743. + * debian/patches: Remove these. Put everything in CVS. + + -- Eric Dorland Fri, 5 Dec 2003 20:03:46 -0500 + +mozilla-firebird (0.7-2) unstable; urgency=low + + * Apply excellent patch from Alexander Sack to fix the + issues with mozilla running and firebird not starting. (Closes: + #216264) + * browser/app/profile/all.js: Set the default of "general.autoScroll" to + false because it annoyes me. (Closes: #221661) + + -- Eric Dorland Wed, 19 Nov 2003 20:59:55 -0500 + +mozilla-firebird (0.7-1) unstable; urgency=low + + * New upstream release. (Closes: #216019) + * debian/patches/dom-inspector.diff: Remove, and apply directly into my + CVS. + * debian/patches/pref.diff: Removed, doesn't seem applicable anymore. + * debian/rules: export MOZ_FIREBIRD=1. + * debian/control: + - Change Chimera to Camino. (Closes: #220821) + - Fix typos in descriptions. (Closes: #218202) + - Add build-deps on m4. (Closes: #219681) + + -- Eric Dorland Wed, 12 Nov 2003 23:01:35 -0500 + +mozilla-firebird (0.6.1-8) unstable; urgency=low + + * Apply patch to make forward and back buttons work on mice. (Closes: + #211606) + * debian/rules: Use -O optimization on alpha, so it will build + again. (Closes: #213603) + + -- Eric Dorland Fri, 3 Oct 2003 00:07:44 -0400 + +mozilla-firebird (0.6.1-7) unstable; urgency=low + + * Rebuild with the latest and greatest from unstable. This seems to fix + the problems with bookmarks people were having, at least for me. No + idea why. Please reopen if this doesn't fix it for you. (Closes: + #209339, #211706, #211286, #211146, #212011) + + -- Eric Dorland Mon, 22 Sep 2003 00:00:08 -0400 + +mozilla-firebird (0.6.1-6) unstable; urgency=low + + * Patch from Eric Wong to make plugin requests + less annoying. (Closes: #196609) + * debian/rules: Stop building libart. + * debian/mozilla-firebird.links: Fix path to bookmarks file. (Partial + fix to #211286) + + -- Eric Dorland Wed, 17 Sep 2003 20:22:56 -0400 + +mozilla-firebird (0.6.1-5) unstable; urgency=low + + * The "sorry Chris Gray" release. + * debian/rules: disable SVG. This was causing drag and drop to lock up + X and possibly fixes #208630. (Closes: #209371) + * debian/mozilla-firebird-runner: Remove XUL.mfasl if we have upgraded, + since it can cause problems. (Closes: #200073, #202130, #207351) + + -- Eric Dorland Sat, 13 Sep 2003 20:15:37 -0400 + +mozilla-firebird (0.6.1-4) unstable; urgency=low + + * The "pleasing Chris Gray" release. + * other-licenses/libart_gpl: Add this library for svg. + * debian/rules: + - Enable svg. + - Move bookmarks.html file into /etc. (Closes: #207398) + * debian/mozilla-firebird.links: Add links back to files moved to /etc. + * security/coreconf/Linux2.6.mk: Add this as a copy of Linux2.5.mk to + get mozilla-firebird to build on 2.6. (Closes: #207821) + + -- Eric Dorland Sun, 31 Aug 2003 04:40:30 -0400 + +mozilla-firebird (0.6.1-3) unstable; urgency=low + + * debian/mozilla-firebird.prerm: Remove mozilla alternative on + remove. (Closes: #205310) + * debian/debsearch.{gif.uu,src}: Debian search plugin graciously + contributed by Fergus McKenzie-Kay . + * debian/rules: + - uudecode and clean up debsearch.gif.uu. + - Steal platform specific optimization code from mozilla + package. Thanks Brian Nelson. (Closes: #206309) + * debian/mozilla-firebird.install: Install the above files. + * debian/control: Update Standards-Version to 3.6.1. + + -- Eric Dorland Sun, 24 Aug 2003 19:09:11 -0400 + +mozilla-firebird (0.6.1-2) unstable; urgency=low + + * The "Stop Pestering Me Already!" release. + * debian/control: Only recommend xprt-xprintorg, don't require + it. (Closes: #204176) + + -- Eric Dorland Sun, 10 Aug 2003 20:00:11 -0400 + +mozilla-firebird (0.6.1-1) unstable; urgency=low + + * New upstream release. (Closes: #203518, #201203) + * debian/control: + - Standards-Version to 3.6.0. + - Don't provide www-browser anymore. (Closes: #201035) + - Depend on xprt-xprintorg so printing will work. (Closes: #202418) + * debian/mozilla-firebird.preinst: Remove www-browser alternative. + * debian/mozilla-firebird.postinst: Don't install www-browser alternative. + * debian/mozilla-firebird.prerm: Don't remove www-browser alternative + anymore. + * debian/README.Debian: Added note about configuration breaking on + upgrade. (Closes: #202130) + * debian/patches/classic.diff: Removed. Not sure what it's point was. + * debian/rules: Add --disable-pedantic to the configure options. + + -- Eric Dorland Sun, 3 Aug 2003 14:58:12 -0400 + +mozilla-firebird (0.6-8) unstable; urgency=low + + * debian/patches/alpha-build-fix.diff: Steal patch from mozilla to allow + building on alpha. (Closes: #198638) + * debian/patches/hppa-build-fix.diff: Steal patch from mozilla to allow + building on hppa, clean it up so it applies cleanly. (Closes: #199068) + * debian/mozilla-firebird.png.uu: Added uuencoded nice png icon. + * debian/rules: Add code to decode and clean up the new icon file. + * debian/mozilla-firebird.install: Install new icon. + * debian/mozilla-firebird.desktop: Use the new icon. + + -- Eric Dorland Fri, 27 Jun 2003 23:21:56 -0400 + +mozilla-firebird (0.6-7) unstable; urgency=low + + * debian/mozilla-firebird.1: Stole the mozilla manpage for my own + nefarious purposes. (Closes: #196638) + * debian/mozilla-firebird.postrm: Add slave links to the + mozilla-firebird manpage. (Closes: #197145) + * debian/mozilla-firebird-xremote-client: Set up the environment + properly so it returns correct information. (Closes: #197632) + * debian/mozilla-firebird.xpm: Added icon from + http://iconpacks.mozdev.org/phoenix/iconshots/flame48true.png to have + a nice menu icon. (Closes: #197565) + * Updated the README.Debian with some helpful bug reporting tips. + * debian/rules: Replaced dh_installmanpages with dh_installman. + + -- Eric Dorland Sun, 22 Jun 2003 15:15:37 -0400 + +mozilla-firebird (0.6-6) unstable; urgency=low + + * debian/mozilla-firebird.postinst: Add priority 0 alternative on + mozilla. (Closes: #196444) + * debian/control: Add build-depends on libxrender-dev, libmng-dev, + libpng12-dev, libjpeg62-dev. + * debian/rules: + - Build with system jpeg, mng and png libs. + - Exclude inspector files from mozilla-firebird. + (Closes: #196432, #196509) + + -- Eric Dorland Sat, 7 Jun 2003 15:19:23 -0400 + +mozilla-firebird (0.6-5) unstable; urgency=low + + * The "Mike Hommey is my homey" release. + * Thanks to Mike Hommey for his excellent work on this + version (it's 99% his), which I've shamelessly stolen. + * Added a README.Debian file. + * Added a separate mozilla-firebird-dom-inspector package. + * debian/patches/dom-inspector.diff: + - add DOM Inspector to Tools menu. (note: DOM Inspector is still + not very well integrated with Firebird) + - remove modern skin references. + * debian/patches/xpinstall.diff: remove unneeded chrome registrations + from xpinstall/packager/unix/browser.jst. + * debian/patches/classic.diff: remove + themes/classic/global/win/preview.gif from jar file and modify + preview image reference in rdf file to Preview.png. + * debian/patches/pref.diff: remove preview image constraints in + browser/components/prefwindow/skin/pref.css file to avoid deformation + of preview image in classic theme. + * debian/mozilla-firebird.preinst: added #DEBHELPER#. + * debian/mozilla-firebird.install: + - Don't install the modern.jar and embed-sample.jar files. + - Remove files related to dom-inspector. + * debian/rules: + - enabling xinerama support. + - disabling build of chatzilla and venkman. + - moved /var/lib/mozilla-firebird/chrome.d/99default to + /var/lib/mozilla-firebird/chrome.d/00all + - remove references to embed-sample.jar in + /var/lib/mozilla-firebird/chrome.d/00all + - Add some comments. + - Change == to =, for more strict /bin/sh's. + * debian/control: Build-Depend on libidl-dev (>= 0.8.0) because the + configure script requires at least this version. + * debian/copyright: Make this a real debian copyright file. + + -- Eric Dorland Thu, 5 Jun 2003 01:00:32 -0400 + +mozilla-firebird (0.6-4) unstable; urgency=low + + * debian/rules: Change -O2 to -O for building on powerpc. + * debian/mozilla-firebird.preinst: Delete + /usr/lib/mozilla-firebird/defaults/pref on upgrade to facilitate + transition to prefs in /etc. Thanks to all who reported this. + + -- Eric Dorland Tue, 27 May 2003 21:45:06 -0400 + +mozilla-firebird (0.6-3) unstable; urgency=low + + * First attempt at a debian upload. (Closes: #163270) + * debian/rules: + + Small fix to Mike Hommey's chrome patch. + + Suggestion from Bernhard R. Link to install + /usr/lib/mozilla-firebird/defaults/pref to + /etc/mozilla-firebird/pref + + Add dh_installmime call. + * debian/mozilla-firebird.mime: Install mime type handlers for firebird. + * debian/mozilla-firebird.links: Link + /usr/lib/mozilla-firebird/defaults/pref to /etc/mozilla-firebird/pref + * debian/mozilla-firebird.install: Don't install the inspector.jar. + + -- Eric Dorland Mon, 26 May 2003 00:28:40 -0400 + +mozilla-firebird (0.6-2) unstable; urgency=low + + * debian/rules: + + Add --with-user-appdir=.mozilla-firebird, since it still + defaults to .phoenix. + + Don't use the ${prefix} variable, use /usr, since ${prefix} + doesn't seem to work. + + Use --without-system-nspr. + * debian/mozilla-firebird.install: + + Be picky about what chrome files we install, since there's + quite a few we don't need, and a bunch of empty dirs. + * Excellent patch from Mike Hommey to add a + update-mozilla-firebird-chrome script. + + -- Eric Dorland Sat, 24 May 2003 13:00:44 -0400 + +mozilla-firebird (0.6-1) unstable; urgency=low + + * New upstream release. + * Renamed to mozilla-firebird. + * Changed phoenix to mozilla-firebird where appropriate. + * debian/mozilla-firebird.links: Add link mozilla-firebird to + MozillaFirebird. + * debian/control: + + Standars-Version to 3.5.10.0. + + Build-depend on gtk2 libs now. + + Build-depend on libidl-dev. + + Add Provides x-www-browser. + * debian/rules: + + Enable building with the gtk2 libs. + + Make mozilla-firebird-xremote-client executable in install target. + * debian/mozilla-firebird.desktop: Added gnome menu entry. + * debian/mozilla-firebird.{prerm,postinst}: Add alternatives to + www-browser and x-www-browser. + + -- Eric Dorland Mon, 19 May 2003 20:43:39 -0400 + +phoenix (0.5-4) unstable; urgency=low + + * debian/control: Depend on fontconfig. + * debian/rules: Add source-tarball-from-cvs to build a orig tarball from + a checked out cvs tree. Now I can provide source package. And there + was much rejoicing. + + -- Eric Dorland Fri, 17 Jan 2003 21:06:47 -0500 + +phoenix (0.5-3) unstable; urgency=low + + * debian/phoenix-xremote-client: Added to send remote commands to + phoenix. Just a wrapper that calls phoenix-bin -remote. + * debian/phoenix-runner: + + Use phoenix-xremote-client. + + Replace MOZILLA_DSP with PHOENIX_DSP. + * debian/phoenixrc: phoenix-runner uses this file to determine what dsp + to start. + * debian/phoenix.install: + + Install phoenix-xremote-client, and don't install + mozilla-xremote-client. + + Install phoenixrc. + + -- Eric Dorland Mon, 23 Dec 2002 02:52:21 -0500 + +phoenix (0.5-2) unstable; urgency=low + + * debian/control: + + Add Provides: www-browser. + + Build-depend on libxft2-dev, libnspr-dev. + * debian/rules: + + Use xft and the system nspr. + + Install phoenix-runner. + * debian/phoenix-runner: Stolen from the mozilla package to run phoenix. + + -- Eric Dorland Sat, 21 Dec 2002 02:03:11 -0500 + +phoenix (0.5-1) unstable; urgency=low + + * New upstream release. + * debian/phoenix.install: Fix paths to phoenix libs. + * debian/control: + + Standards-Version to 3.5.8 + + Improve build-deps. + * debian/rules: + + Have configure options here, no more .mozconfig. + + Steal some patch code from Colin. + * debian/patches/mozappdir.diff: Change the mozappdir. + + -- Eric Dorland Mon, 9 Dec 2002 02:43:13 -0500 + +phoenix (0.4-3) unstable; urgency=low + + * debian/phoenix.menu: Add menu entry. + * Rebuild to fix libstdc++ dependency. + * .mozonfig: Disable more tests. + + -- Eric Dorland Wed, 20 Nov 2002 19:13:18 -0500 + +phoenix (0.4-2) unstable; urgency=low + + * debian/control: + + Add build-depends. + + Fix section and description. + * .mozconfig: + + Use system zlib. + + -- Eric Dorland Wed, 13 Nov 2002 19:03:52 -0500 + +phoenix (0.4-1) unstable; urgency=low + + * Initial release. + + -- Eric Dorland Mon, 11 Nov 2002 23:09:41 -0500 --- thunderbird-3.1.8+build1+nobinonly.orig/debian/thunderbird-dev.install +++ thunderbird-3.1.8+build1+nobinonly/debian/thunderbird-dev.install @@ -0,0 +1,6 @@ +debian/tmp/usr/share/idl +debian/tmp/usr/include +debian/tmp/usr/lib/thunderbird-devel-* +debian/tmp/usr/lib/thunderbird-3*/xpidl +debian/tmp/usr/lib/thunderbird-3*/xpt_* + --- thunderbird-3.1.8+build1+nobinonly.orig/debian/thunderbird.sh.in +++ thunderbird-3.1.8+build1+nobinonly/debian/thunderbird.sh.in @@ -0,0 +1,141 @@ +#!/bin/sh + +# Firefox launcher containing a Profile migration helper for +# temporary profiles used during alpha and beta phases. + +# Original Authors: +# Alexander Sack +# Fabien Tassin +# Steve Langasek + +# Modified for Thunderbird by: +# Micah Gersten +# License: GPLv2 or later + +# Offer to migrate a beta 3.1 profile to replace a current 3.0 profile +# If nothing is found, we'll go for a fresh run and let thunderbird create a +# default profile for us. + +HOMEDIR=$HOME +LIBDIR=@LIBDIR@ +APPVER=@APPVER@ +META_NAME=@META_NAME@ +GDB=/usr/bin/gdb +DROPPED=abandoned + +NAME=`which "$0"` +export MOZ_APP_LAUNCHER="$0" +if [ "x$META_NAME" != "x" ] ; then + NAME="${NAME%%-$APPVER}" +fi +APPNAME="$(basename "$NAME")" + +while [ ! -f "$LIBDIR/$APPNAME" ] && [ -L "$NAME" ]; do + TARGET="$(readlink "$NAME")" + if [ "x$TARGET" = "x$(basename "$TARGET")" ]; then + TARGET="$(dirname "$NAME")/$TARGET" + fi + if [ "x$META_NAME" != "x" ] ; then + TARGET=${TARGET%%-$APPVER} + fi + NAME="$TARGET" + APPNAME="$(basename "$NAME")" + if [ "x$APPNAME" = "xthunderbird.sh" ]; then + APPNAME=thunderbird + break + fi +done + +usage () { + $LIBDIR/$APPNAME -h | sed -e 's,/.*/,,' + echo + echo " -g or --debug Start within $GDB (Must be first)" +} + +want_debug=0 +while [ $# -gt 0 ]; do + case "$1" in + -h | --help | -help ) + usage + exit 0 ;; + -g | --debug ) + want_debug=1 + shift ;; + -- ) # Stop option prcessing + shift + break ;; + * ) + break ;; + esac +done + +# if there exists a beta profile (first found: $HOMEDIR/.thunderbird-3.1) +# and there is a standard thunderbird profile as well, ask the +# user what to do. In case he decides to import the thunderbird 3.0 profile +# settings, we keep the imported 3.0 profile, but rename the beta +# profile by appending the suffix |.abandoned|. In case the user decides to +# keep using the thunderbird 3.1 profile, we rename the original thunderbird profile +# to .thunderbird-3.0-replaced and rename the beta profile to be |.thunderbird|. +# +# as a third option the user can defer his final decision. This will leave the +# beta directories untouched, thus making the user use thunderbird 3 by default. +# + +CURRENT=.thunderbird +FOUND_CURRENT="" +if [ -d $HOMEDIR/$CURRENT ] ; then + FOUND_CURRENT=$CURRENT +fi + +FOUND_BETA="" +BETA_LIST="" +for betaname in .thunderbird-3.1; do + if [ -d $HOMEDIR/$betaname ]; then + BETA_LIST="$BETA_LIST $betaname" + FOUND_BETA=$betaname + fi +done + +# If 3.0-replaced dir is found, we consider the beta migration done +if [ "$FOUND_BETA" != "" -a ! -d $HOMEDIR/$CURRENT-3.0-replaced ] ; then + echo -n "Found Beta Participation ..." + $LIBDIR/tb-beta-profile-migration-dialog + result=$? + if [ $result = 1 ]; then + if [ $FOUND_CURRENT != "" ] ; then + mv $HOMEDIR/$CURRENT $HOMEDIR/$CURRENT-3.0-replaced + fi + mv $HOMEDIR/$FOUND_BETA $HOMEDIR/$CURRENT + for beta in $BETA_LIST ; do + if [ $beta != $FOUND_BETA ] ; then + mv $HOMEDIR/$beta $HOMEDIR/$beta.$DROPPED + fi + done + echo " keep beta profile." + elif [ $result = 2 ]; then + #TB3.0 Profile already imported, so just move Beta profile out of the way + for beta in $BETA_LIST ; do + mv $HOMEDIR/$beta $HOMEDIR/$beta.$DROPPED + done + echo " use thunderbird 3.0 profile." + else + echo " use thunderbird 3.0 profile, but will ask again next time." + fi +fi + +if [ $want_debug -eq 1 ] ; then + if [ ! -x $GDB ] ; then + echo "Sorry, can't find usable $GDB. Please install it." + exit 1 + fi + tmpfile=`mktemp /tmp/mozargs.XXXXXX` || { echo "Cannot create temporary file" >&2; exit 1; } + trap " [ -f \"$tmpfile\" ] && /bin/rm -f -- \"$tmpfile\"" 0 1 2 3 13 15 + echo "set args ${1+"$@"}" > $tmpfile + echo "sh $LIBDIR/run-mozilla.sh $GDB "$LIBDIR/$META_NAME"-bin -x $tmpfile" + # force command name to be thunderbird for run-mozilla.sh + CMDNAME_USER=thunderbird sh $LIBDIR/run-mozilla.sh $GDB "$LIBDIR/$META_NAME"-bin -x $tmpfile + exit $? +else + # force command name to be thunderbird for run-mozilla.sh + CMDNAME_USER=thunderbird exec $LIBDIR/$META_NAME "$@" +fi --- thunderbird-3.1.8+build1+nobinonly.orig/debian/MPL +++ thunderbird-3.1.8+build1+nobinonly/debian/MPL @@ -0,0 +1,567 @@ + MOZILLA PUBLIC LICENSE + Version 1.1 + + --------------- + +1. Definitions. + + 1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. + + 1.1. "Contributor" means each entity that creates or contributes to + the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the Modifications + made by that particular Contributor. + + 1.3. "Covered Code" means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each case + including portions thereof. + + 1.4. "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + + 1.5. "Executable" means Covered Code in any form other than Source + Code. + + 1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required by Exhibit + A. + + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this License. + + 1.8. "License" means this document. + + 1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, a + Modification is: + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + + B. Any new file that contains any part of the Original Code or + previous Modifications. + + 1.10. "Original Code" means Source Code of computer software code + which is described in the Source Code notice required by Exhibit A as + Original Code, and which, at the time of its release under this + License is not already Covered Code governed by this License. + + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, plus + any associated interface definition files, scripts used to control + compilation and installation of an Executable, or source code + differential comparisons against either the Original Code or another + well known, available Covered Code of the Contributor's choice. The + Source Code can be in a compressed or archival form, provided the + appropriate decompression or de-archiving software is widely available + for no charge. + + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this + License or a future version of this License issued under Section 6.1. + For legal entities, "You" includes any entity which controls, is + controlled by, or is under common control with You. For purposes of + this definition, "control" means (a) the power, direct or indirect, + to cause the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of more than fifty percent + (50%) of the outstanding shares or beneficial ownership of such + entity. + +2. Source Code License. + + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + + (b) under Patents Claims infringed by the making, using or + selling of Original Code, to make, have made, use, practice, + sell, and offer for sale, and/or otherwise dispose of the + Original Code (or portions thereof). + + (c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes + Original Code under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices. + + 2.2. Contributor Grant. + Subject to third party intellectual property claims, each Contributor + hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either alone + and/or in combination with its Contributor Version (or portions + of such combination), to make, use, sell, offer for sale, have + made, and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of + the Covered Code. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: 1) for any code that Contributor has deleted from the + Contributor Version; 2) separate from the Contributor Version; + 3) for infringements caused by: i) third party modifications of + Contributor Version or ii) the combination of Modifications made + by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made by + that Contributor. + +3. Distribution Obligations. + + 3.1. Application of License. + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without limitation + Section 2.2. The Source Code version of Covered Code may be + distributed only under the terms of this License or a future version + of this License released under Section 6.1, and You must include a + copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source Code + version that alters or restricts the applicable version of this + License or the recipients' rights hereunder. However, You may include + an additional document offering the additional rights described in + Section 3.5. + + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must be + made available in Source Code form under the terms of this License + either on the same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve (12) + months after the date it initially became available, or at least six + (6) months after a subsequent version of that particular Modification + has been made available to such recipients. You are responsible for + ensuring that the Source Code version remains available even if the + Electronic Distribution Mechanism is maintained by a third party. + + 3.3. Description of Modifications. + You must cause all Covered Code to which You contribute to contain a + file documenting the changes You made to create that Covered Code and + the date of any change. You must include a prominent statement that + the Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of the + Initial Developer in (a) the Source Code, and (b) in any notice in an + Executable version or related documentation in which You describe the + origin or ownership of the Covered Code. + + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party's + intellectual property rights is required to exercise the rights + granted by such Contributor under Sections 2.1 or 2.2, + Contributor must include a text file with the Source Code + distribution titled "LEGAL" which describes the claim and the + party making the claim in sufficient detail that a recipient will + know whom to contact. If Contributor obtains such knowledge after + the Modification is made available as described in Section 3.2, + Contributor shall promptly modify the LEGAL file in all copies + Contributor makes available thereafter and shall take other steps + (such as notifying appropriate mailing lists or newsgroups) + reasonably calculated to inform those who received the Covered + Code that new knowledge has been obtained. + + (b) Contributor APIs. + If Contributor's Modifications include an application programming + interface and Contributor has knowledge of patent licenses which + are reasonably necessary to implement that API, Contributor must + also include this information in the LEGAL file. + + (c) Representations. + Contributor represents that, except as disclosed pursuant to + Section 3.4(a) above, Contributor believes that Contributor's + Modifications are Contributor's original creation(s) and/or + Contributor has sufficient rights to grant the rights conveyed by + this License. + + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source + Code. If it is not possible to put such notice in a particular Source + Code file due to its structure, then You must include such notice in a + location (such as a relevant directory) where a user would be likely + to look for such a notice. If You created one or more Modification(s) + You may add your name as a Contributor to the notice described in + Exhibit A. You must also duplicate this License in any documentation + for the Source Code where You describe recipients' rights or ownership + rights relating to Covered Code. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Code. However, You + may do so only on Your own behalf, and not on behalf of the Initial + Developer or any Contributor. You must make it absolutely clear than + any such warranty, support, indemnity or liability obligation is + offered by You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of warranty, + support, indemnity or liability terms You offer. + + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of + the Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously included + in any notice in an Executable version, related documentation or + collateral in which You describe recipients' rights relating to the + Covered Code. You may distribute the Executable version of Covered + Code or ownership rights under a license of Your choice, which may + contain terms different from this License, provided that You are in + compliance with the terms of this License and that the license for the + Executable version does not attempt to limit or alter the recipient's + rights in the Source Code version from the rights set forth in this + License. If You distribute the Executable version under a different + license You must make it absolutely clear that any terms which differ + from this License are offered by You alone, not by the Initial + Developer or any Contributor. You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred by + the Initial Developer or such Contributor as a result of any such + terms You offer. + + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other code + not governed by the terms of this License and distribute the Larger + Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to + statute, judicial order, or regulation then You must: (a) comply with + the terms of this License to the maximum extent possible; and (b) + describe the limitations and the code they affect. Such description + must be included in the LEGAL file described in Section 3.4 and must + be included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Application of this License. + + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + + 6.1. New Versions. + Netscape Communications Corporation ("Netscape") may publish revised + and/or new versions of the License from time to time. Each version + will be given a distinguishing version number. + + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of the + License, You may always continue to use it under the terms of that + version. You may also choose to use such Covered Code under the terms + of any subsequent version of the License published by Netscape. No one + other than Netscape has the right to modify the terms applicable to + Covered Code created under this License. + + 6.3. Derivative Works. + If You create or use a modified version of this License (which you may + only do in order to apply it to code which is not already Covered Code + governed by this License), You must (a) rename Your license so that + the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", + "MPL", "NPL" or any confusingly similar phrase do not appear in your + license (except to note that your license differs from this License) + and (b) otherwise make it clear that Your version of the license + contains terms which differ from the Mozilla Public License and + Netscape Public License. (Filling in the name of the Initial + Developer, Original Code or Contributor in the notice described in + Exhibit A shall not of themselves be deemed to be modifications of + this License.) + +7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF + DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. + THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE + IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE + COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + + 8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure + such breach within 30 days of becoming aware of the breach. All + sublicenses to the Covered Code which are properly granted shall + survive any termination of this License. Provisions which, by their + nature, must remain in effect beyond the termination of this License + shall survive. + + 8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declatory judgment actions) against Initial Developer + or a Contributor (the Initial Developer or Contributor against whom + You file such action is referred to as "Participant") alleging that: + + (a) such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by such + Participant to You under Sections 2.1 and/or 2.2 of this License + shall, upon 60 days notice from Participant terminate prospectively, + unless if within 60 days after receipt of notice You either: (i) + agree in writing to pay Participant a mutually agreeable reasonable + royalty for Your past and future use of Modifications made by such + Participant, or (ii) withdraw Your litigation claim with respect to + the Contributor Version against such Participant. If within 60 days + of notice, a reasonable royalty and payment arrangement are not + mutually agreed upon in writing by the parties or the litigation claim + is not withdrawn, the rights granted by Participant to You under + Sections 2.1 and/or 2.2 automatically terminate at the expiration of + the 60 day notice period specified above. + + (b) any software, hardware, or device, other than such Participant's + Contributor Version, directly or indirectly infringes any patent, then + any rights granted to You by such Participant under Sections 2.1(b) + and 2.2(b) are revoked effective as of the date You first made, used, + sold, distributed, or had made, Modifications made by that + Participant. + + 8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved (such as + by license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 8.4. In the event of termination under Sections 8.1 or 8.2 above, + all end user license agreements (excluding distributors and resellers) + which have been validly granted by You or any distributor hereunder + prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR + ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, + WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO + THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + + The Covered Code is a "commercial item," as that term is defined in + 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" and "commercial computer software documentation," as such + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 + C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), + all U.S. Government End Users acquire Covered Code with only those + rights set forth herein. + +11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + California law provisions (except to the extent applicable law, if + any, provides otherwise), excluding its conflict-of-law provisions. + With respect to disputes in which at least one party is a citizen of, + or an entity chartered or registered to do business in the United + States of America, any litigation relating to this License shall be + subject to the jurisdiction of the Federal Courts of the Northern + District of California, with venue lying in Santa Clara County, + California, with the losing party responsible for costs, including + without limitation, court costs and reasonable attorneys' fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly excluded. + Any law or regulation which provides that the language of a contract + shall be construed against the drafter shall not apply to this + License. + +12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means that the Initial + Developer permits you to utilize portions of the Covered Code under + Your choice of the NPL or the alternative licenses, if any, specified + by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Mozilla Public License. + + ``The contents of this file are subject to the Mozilla Public License + Version 1.1 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + License for the specific language governing rights and limitations + under the License. + + The Original Code is ______________________________________. + + The Initial Developer of the Original Code is ________________________. + Portions created by ______________________ are Copyright (C) ______ + _______________________. All Rights Reserved. + + Contributor(s): ______________________________________. + + Alternatively, the contents of this file may be used under the terms + of the _____ license (the "[___] License"), in which case the + provisions of [______] License are applicable instead of those + above. If you wish to allow use of your version of this file only + under the terms of the [____] License and not to allow others to use + your version of this file under the MPL, indicate your decision by + deleting the provisions above and replace them with the notice and + other provisions required by the [___] License. If you do not delete + the provisions above, a recipient may use your version of this file + under either the MPL or the [___] License." + + [NOTE: The text of this Exhibit A may differ slightly from the text of + the notices in the Source Code files of the Original Code. You should + use the text of this Exhibit A rather than the text found in the + Original Code Source Code for Your Modifications.] + + ---------------------------------------------------------------------- + + AMENDMENTS + + The Netscape Public License Version 1.1 ("NPL") consists of the + Mozilla Public License Version 1.1 with the following Amendments, + including Exhibit A-Netscape Public License. Files identified with + "Exhibit A-Netscape Public License" are governed by the Netscape + Public License Version 1.1. + + Additional Terms applicable to the Netscape Public License. + I. Effect. + These additional terms described in this Netscape Public + License -- Amendments shall apply to the Mozilla Communicator + client code and to all Covered Code under this License. + + II. "Netscape's Branded Code" means Covered Code that Netscape + distributes and/or permits others to distribute under one or more + trademark(s) which are controlled by Netscape but which are not + licensed for use under this License. + + III. Netscape and logo. + This License does not grant any rights to use the trademarks + "Netscape", the "Netscape N and horizon" logo or the "Netscape + lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript", + "Smart Browsing" even if such marks are included in the Original + Code or Modifications. + + IV. Inability to Comply Due to Contractual Obligation. + Prior to licensing the Original Code under this License, Netscape + has licensed third party code for use in Netscape's Branded Code. + To the extent that Netscape is limited contractually from making + such third party code available under this License, Netscape may + choose to reintegrate such code into Covered Code without being + required to distribute such code in Source Code form, even if + such code would otherwise be considered "Modifications" under + this License. + + V. Use of Modifications and Covered Code by Initial Developer. + V.1. In General. + The obligations of Section 3 apply to Netscape, except to + the extent specified in this Amendment, Section V.2 and V.3. + + V.2. Other Products. + Netscape may include Covered Code in products other than the + Netscape's Branded Code which are released by Netscape + during the two (2) years following the release date of the + Original Code, without such additional products becoming + subject to the terms of this License, and may license such + additional products on different terms from those contained + in this License. + + V.3. Alternative Licensing. + Netscape may license the Source Code of Netscape's Branded + Code, including Modifications incorporated therein, without + such Netscape Branded Code becoming subject to the terms of + this License, and may license such Netscape Branded Code on + different terms from those contained in this License. + + VI. Litigation. + Notwithstanding the limitations of Section 11 above, the + provisions regarding litigation in Section 11(a), (b) and (c) of + the License shall apply to all disputes relating to this License. + + EXHIBIT A-Netscape Public License. + + "The contents of this file are subject to the Netscape Public + License Version 1.1 (the "License"); you may not use this file + except in compliance with the License. You may obtain a copy of + the License at http://www.mozilla.org/NPL/ + + Software distributed under the License is distributed on an "AS + IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + implied. See the License for the specific language governing + rights and limitations under the License. + + The Original Code is Mozilla Communicator client code, released + March 31, 1998. + + The Initial Developer of the Original Code is Netscape + Communications Corporation. Portions created by Netscape are + Copyright (C) 1998-1999 Netscape Communications Corporation. All + Rights Reserved. + + Contributor(s): ______________________________________. + + Alternatively, the contents of this file may be used under the + terms of the _____ license (the "[___] License"), in which case + the provisions of [______] License are applicable instead of + those above. If you wish to allow use of your version of this + file only under the terms of the [____] License and not to allow + others to use your version of this file under the NPL, indicate + your decision by deleting the provisions above and replace them + with the notice and other provisions required by the [___] + License. If you do not delete the provisions above, a recipient + may use your version of this file under either the NPL or the + [___] License." --- thunderbird-3.1.8+build1+nobinonly.orig/debian/compat +++ thunderbird-3.1.8+build1+nobinonly/debian/compat @@ -0,0 +1 @@ +5 --- thunderbird-3.1.8+build1+nobinonly.orig/debian/thunderbird.NEWS +++ thunderbird-3.1.8+build1+nobinonly/debian/thunderbird.NEWS @@ -0,0 +1,9 @@ +thunderbird (3.0.4+nobinonly-0ubuntu3) lucid; urgency=high + + * In the last upload, a recursive symlink might have been created. If + Thunderbird will not start, then run 'ls -ld ~/.*thunderbird*' from a + terminal. If you see .thunderbird in your home directory linked to itself, + remove the .thunderbird link to itself and mv .thunderbird.upstream to + .thunderbird + + -- Micah Gersten Thu, 15 Apr 2010 12:00:49 -0500 --- thunderbird-3.1.8+build1+nobinonly.orig/debian/control +++ thunderbird-3.1.8+build1+nobinonly/debian/control @@ -0,0 +1,119 @@ +Source: thunderbird +Section: web +Priority: optional +Maintainer: Ubuntu Mozilla Team +Build-Depends: bzip2, + debhelper (>= 5), + autoconf2.13, + autotools-dev, + quilt, + mozilla-devscripts, + patchutils (>= 0.2.25), + cdbs (>= 0.4.27-1), + libx11-dev (>= 2:1.0), + libxt-dev, + libgtk2.0-dev (>= 2.12), + libglib2.0-dev (>= 2.12), + libstartup-notification0-dev, + zlib1g-dev (>= 1:1.2.3), + libbz2-dev, + liborbit2-dev, + libidl-dev (>= 0.8.0), + zip, + libxft-dev, + libfreetype6-dev, + libpng12-dev (>= 1.2.0), + libjpeg62-dev (>= 6b), + libxrender-dev, + libxinerama-dev, + libcairo2-dev (>= 0.5.8), + libpixman-1-dev, + libgnome2-dev (>= 2.16), + libgconf2-dev, + libgnomevfs2-dev (>= 1:2.16), + libgnomeui-dev (>= 2.16), + libdbus-1-dev (>= 1.0.0), + libdbus-glib-1-dev (>= 0.60), + libasound2-dev, + sharutils, + m4, + libreadline5-dev | libreadline-dev, + libkrb5-dev, + binutils (>= 2.17-1) [mips mipsel], + libhunspell-dev, + libnspr4-dev (>= 4.7.0~1.9b3), + libnss3-dev (>= 3.12.0~1.9b3), + lsb-release, + libnotify-dev, + libiw-dev, + mesa-common-dev, + docbook-to-man, + libcurl4-openssl-dev, + libdbusmenu-gtk-dev +Standards-Version: 3.8.0 + +Package: thunderbird +Architecture: any +Depends: fontconfig, psmisc, debianutils (>= 1.16), ${shlibs:Depends}, ${misc:Depends} +Recommends: myspell-en-us | hunspell-dictionary | myspell-dictionary, thunderbird-globalmenu +Suggests: thunderbird-gnome-support (= ${binary:Version}), latex-xft-fonts, libthai0 +Replaces: mozilla-thunderbird, thunderbird-gnome-support (<= 3.0.4+nobinonly-0ubuntu3) +Conflicts: mozilla-thunderbird +Breaks: thunderbird-gnome-support (<= 3.0.4+nobinonly-0ubuntu3) +Provides: mail-reader +Section: mail +Description: mail/news client with RSS and integrated spam filter support + Thunderbird is a lightweight mail/news/RSS client, based on the Mozilla suite. + It supports different mail accounts (POP, IMAP, Gmail), has an integrated + learning Spam filter, and offers easy organization of mails with tagging and + virtual folders. Also, more features can be added by installing extensions. + +Package: thunderbird-gnome-support +Architecture: any +Section: mail +Depends: ${shlibs:Depends}, thunderbird (= ${binary:Version}), ${misc:Depends} +Description: Support for Gnome in Mozilla Thunderbird + This is an extension to Thunderbird that allows it to use protocol + handlers from Gnome-VFS, such as smb or sftp, and other Gnome + integration features. + +Package: thunderbird-dev +Architecture: any +Section: mail +Depends: thunderbird (= ${binary:Version}), thunderbird-gnome-support (= ${binary:Version}), ${misc:Depends} +Description: Development files for Mozilla Thunderbird + This package contains the development headers, idl files and static libraries + needed to develop applications using Mozilla Thunderbird. + +Package: thunderbird-dbg +Architecture: any +Section: devel +Priority: optional +Depends: thunderbird, ${shlibs:Depends}, ${misc:Depends} +Description: thunderbird debug symbols + Debug symbols for Thunderbird. + +Package: thunderbird-gnome-support-dbg +Architecture: any +Section: devel +Priority: optional +Depends: thunderbird-gnome-support, ${shlibs:Depends}, ${misc:Depends} +Description: thunderbird gnome support debug symbols + Debug symbols for Thunderbird Gnome Support package. + +Package: thunderbird-mozsymbols +Architecture: amd64 i386 armel +Section: debug +Priority: extra +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: thunderbird debug symbols for mozilla + package containing the thunderbird symbols in a format expected by mozilla's + breakpad. eventually this package should go away and the symbol upload be + implemented in soyuz (or other builders that build this package) + +Package: thunderbird-globalmenu +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, thunderbird (= ${binary:Version}) +Description: Unity appmenu integration for Thunderbird + This package provides an extension which adds support for the Unity + appmenu to Thunderbird --- thunderbird-3.1.8+build1+nobinonly.orig/debian/moz-rev.sh +++ thunderbird-3.1.8+build1+nobinonly/debian/moz-rev.sh @@ -0,0 +1,48 @@ +#!/bin/sh + +# Copyright (c) 2009 Fabien Tassin +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +URL=$1 +BRANCH=$2 + +set -e + +if [ Z$1 = Z ] ; then + echo "Usage: $0 MOZ_URL [BRANCH]" + echo + echo "Ex: $0 http://hg.mozilla.org/releases/mozilla-1.9.2 default" + exit 1 +fi + +if [ Z$BRANCH = Z ] ; then + BRANCH="default" +fi + +# Get the tip of $BRANCH +URL_BASE=`echo $URL | sed -e 's,^\(http://[^/]*\)/.*,\1,'` +TIP=`wget -qO- $URL/summary | sed -e '1,/>branches$BRANCH<" | \ + sed -e 's,.*'$BRANCH'changeset.*,\1,'` + +# Get the rev-id and hash of this top +REVS=`wget -qO- $URL_BASE$TIP | grep '^' | sed -e 's/.* changeset \([^<]*\).*/\1/'` +REV=`echo $REVS | cut -d: -f1` +HASH=`echo $REVS | cut -d: -f2` + +# Get the date of this tip +DATE=`wget -qO- "$URL/pushlog?changeset=$HASH" | grep '^ <updated>' | tr '<>' '"' | cut -d'"' -f3 | cut -dT -f1 | tr -d '-'` + +echo "${DATE}r${REV}" --- thunderbird-3.1.8+build1+nobinonly.orig/debian/thunderbird.sgml +++ thunderbird-3.1.8+build1+nobinonly/debian/thunderbird.sgml @@ -0,0 +1,129 @@ +<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ + +<!-- Process this file with docbook-to-man to generate an nroff manual + page: `docbook-to-man manpage.sgml > manpage.1'. You may view + the manual page with: `docbook-to-man manpage.sgml | nroff -man | + less'. A typical entry in a Makefile or Makefile.am is: + +manpage.1: manpage.sgml + docbook-to-man $< > $@ + + + The docbook-to-man binary is found in the docbook-to-man package. + Please remember that if you create the nroff version in one of the + debian/rules file targets (such as build), you will need to include + docbook-to-man in your Build-Depends control field. + + --> + + <!-- Fill in your name for FIRSTNAME and SURNAME. --> + <!ENTITY dhfirstname "<firstname>Alexander</firstname>"> + <!ENTITY dhsurname "<surname>Sack</surname>"> + <!-- Please adjust the date whenever revising the manpage. --> + <!ENTITY dhdate "<date>September 28, 2003</date>"> + <!-- SECTION should be 1-8, maybe w/ subsection other parameters are + allowed: see man(7), man(1). --> + <!ENTITY dhsection "<manvolnum>1</manvolnum>"> + <!ENTITY dhemail "<email>asac@jwsdot.com</email>"> + <!ENTITY dhusername "Alexander Sack"> + <!ENTITY dhucpackage "<refentrytitle>THUNDERBIRD</refentrytitle>"> + <!ENTITY dhpackage "thunderbird"> + + <!ENTITY debian "<productname>Debian</productname>"> + <!ENTITY gnu "<acronym>MPL</acronym>"> + <!ENTITY gpl "&gnu; <acronym></acronym>"> +]> + +<refentry> + <refentryinfo> + <address> + &dhemail; + </address> + <author> + &dhfirstname; + &dhsurname; + </author> + <copyright> + <year>2003</year> + <holder>&dhusername;</holder> + </copyright> + &dhdate; + </refentryinfo> + <refmeta> + &dhucpackage; + + &dhsection; + </refmeta> + <refnamediv> + <refname>&dhpackage;</refname> + + <refpurpose> thunderbird - Mail User Agent (MUA) and newsgroup/RSS + client for X11 derived from the Mozilla suite.</refpurpose> + </refnamediv> + <refsynopsisdiv> + <cmdsynopsis> + <command>thunderbird</command> + + <arg><option>-P <replaceable>profile</replaceable></option></arg> + </cmdsynopsis> + </refsynopsisdiv> + <refsect1> + <title>DESCRIPTION + + Thunderbird provides IMAP/POP support, a built-in RSS reader, + support for HTML mail, powerful quick search, saved search + folders, advanced message filtering, junk mail controls, + message grouping, labels, return receipts, smart address book + LDAP address completion, import tools, and the ability to + manage multiple identities in email and newsgroup accounts. + Thunderbird provides enterprise and government grade security + such as S/MIME, digital signing, message encryption, and support + for certificates and security devices. + + + + OPTIONS + + + + + + + If no profile is given to the -P option, the profile + manager will pop-up. You will be allowed to create or + select a profile. Thunderbird then launches with the + selected profile. + + + + + + SEE ALSO + +The Thunderbird Homepage: +http://www.mozilla.org/projects/thunderbird/ + +The Debian Thunderbird FAQ: +http://www.jwsdot.com/debian/faq.html + + + + + + + --- thunderbird-3.1.8+build1+nobinonly.orig/debian/thunderbird.desktop +++ thunderbird-3.1.8+build1+nobinonly/debian/thunderbird.desktop @@ -0,0 +1,60 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Thunderbird Mail/News +Comment=Read/Write Mail/News with Thunderbird +GenericName=Mail Client +Exec=thunderbird %u +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=thunderbird +Categories=Application;Network;Email; +MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml; +StartupWMClass=Thunderbird +StartupNotify=true +Name[es]=Cliente de correo y noticias Thunderbird +Name[cs]=Poštovní klient Thunderbird +Name[ca]=Client de correu Thunderbird +Name[fi]=Thunderbird-sähköposti +Name[fr]=Messagerie Thunderbird +Name[gl]=Cliente de correo Thunderbird +Name[hr]=Mozilla Thunderbird e-pošta/novosti +Name[hu]=Thunderbird levelezőkliens +Name[pl]=Klient poczty Thunderbird +Name[pt_BR]=Cliente de E-mail Thunderbird +Name[sk]=Thunderbird - poštový klient a novin +Name[sv]=E-postklienten Thunderbird +Name[ru]=Почтовый клиент Thunderbird +Name[ug]=Mozilla Thunderbird ئېلخەت/خەۋەر +Name[zh_CN]=Thunderbird 邮件/新闻 +Name[zh_TW]=Thunderbird 郵件 +Comment[es]=Lea y escriba correos y noticias con Thunderbird +Comment[ca]=Llegiu i escriviu correu +Comment[cs]=Čtení a psaní pošty +Comment[de]=Emails lesen und verfassen +Comment[fi]=Lue ja kirjoita sähköposteja +Comment[fr]=Lire et écrire des courriels +Comment[gl]=Lea e escriba correo electrónico +Comment[hr]=Čitajte/šaljite e-poštu s Thunderbird +Comment[hu]=Levelek írása és olvasása a Thunderbirddel +Comment[it]=Leggere e scrivere email +Comment[ja]=メールの読み書き +Comment[pl]=Czytanie i wysyłanie e-maili +Comment[pt_BR]=Ler e escrever suas mensagens +Comment[sk]=Čítajte a píšte poštu, čítajte novinky pomocou programu Mozilla Thunderbird +Comment[sv]=Läs och skriv e-post +Comment[ru]=Читайте и пишите письма +Comment[ug]=ئېلخەت ۋە خەۋەرلەرنى Mozilla Thunderbird دا كۆرۈش ۋە يېزىش +Comment[zh_CN]=阅读邮件或新闻 +Comment[zh_TW]=以 Mozilla Thunderbird 讀寫郵件或新聞 +GenericName[ca]=Client de correu +GenericName[de]=E-Mail-Client +GenericName[fr]=Client de messagerie +GenericName[gl]=Cliente de correo electrónico +GenericName[hr]=Klijent e-pošte +GenericName[hu]=Levelezőkliens +GenericName[ru]=Почтовый клиент +GenericName[sk]=Poštový klie +GenericName[ug]=ئېلخەت دېتالى +GenericName[zh_CN]=邮件新闻客户端 +GenericName[zh_TW]=郵件用戶端 --- thunderbird-3.1.8+build1+nobinonly.orig/debian/thunderbird-gnome-support.install +++ thunderbird-3.1.8+build1+nobinonly/debian/thunderbird-gnome-support.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/thunderbird-3*/components/libmozgnome.so +debian/thunderbird.xml usr/share/gnome-control-center/default-apps --- thunderbird-3.1.8+build1+nobinonly.orig/debian/thunderbird.install +++ thunderbird-3.1.8+build1+nobinonly/debian/thunderbird.install @@ -0,0 +1,83 @@ +debian/thunderbird.desktop usr/share/applications + +debian/tmp/usr/lib/thunderbird-3*/[LR]* +debian/tmp/usr/lib/thunderbird-3*/lib* +debian/tmp/usr/lib/thunderbird-3*/*.ini +debian/tmp/usr/lib/thunderbird-3*/defaults +#debian/tmp/usr/lib/thunderbird-3*/dictionaries +debian/tmp/usr/lib/thunderbird-3*/extensions/\{972ce4c6-7e08-4474-a285-3208198ce6fd\} usr/lib/thunderbird-addons/extensions/ +debian/tmp/usr/lib/thunderbird-3*/greprefs +debian/tmp/usr/lib/thunderbird-3*/modules +debian/tmp/usr/lib/thunderbird-3*/isp +debian/tmp/usr/lib/thunderbird-3*/res +debian/tmp/usr/lib/thunderbird-3*/thunderbird* +debian/tmp/usr/lib/thunderbird-3*/chrome +debian/tmp/usr/lib/thunderbird-3*/run-mozilla.sh +debian/tmp/usr/lib/thunderbird-3*/mozilla-xremote-client +debian/tmp/usr/lib/thunderbird-3*/removed-files + +# components: almost everything except gnome +debian/tmp/usr/lib/thunderbird-3.1*/components/mailContentHandler.js +debian/tmp/usr/lib/thunderbird-3.1*/components/msgAsyncPrompter.js +debian/tmp/usr/lib/thunderbird-3.1*/components/nsINIProcessor.js +debian/tmp/usr/lib/thunderbird-3.1*/components/nsUpdateTimerManager.js +debian/tmp/usr/lib/thunderbird-3*/components/newsblog.js +debian/tmp/usr/lib/thunderbird-3*/components/nsSetDefaultMail.js +debian/tmp/usr/lib/thunderbird-3*/components/nsBadCertHandler.js +debian/tmp/usr/lib/thunderbird-3*/components/offlineStartup.js +debian/tmp/usr/lib/thunderbird-3*/components/nsMailDefaultHandler.js +debian/tmp/usr/lib/thunderbird-3*/components/mdn-service.js +debian/tmp/usr/lib/thunderbird-3*/components/smime-service.js +debian/tmp/usr/lib/thunderbird-3*/components/FeedProcessor.js +debian/tmp/usr/lib/thunderbird-3*/components/nsAbLDAPAttributeMap.js +debian/tmp/usr/lib/thunderbird-3*/components/nsHelperAppDlg.js +debian/tmp/usr/lib/thunderbird-3*/components/nsDownloadManagerUI.js +debian/tmp/usr/lib/thunderbird-3*/components/nsContentDispatchChooser.js +debian/tmp/usr/lib/thunderbird-3*/components/nsHandlerService.js +debian/tmp/usr/lib/thunderbird-3*/components/nsWebHandlerApp.js +debian/tmp/usr/lib/thunderbird-3*/components/nsPhishingProtectionApplication.js +debian/tmp/usr/lib/thunderbird-3*/components/nsUrlClassifierListManager.js +debian/tmp/usr/lib/thunderbird-3*/components/nsUrlClassifierLib.js +debian/tmp/usr/lib/thunderbird-3*/components/nsProxyAutoConfig.js +debian/tmp/usr/lib/thunderbird-3*/components/nsAddonRepository.js +debian/tmp/usr/lib/thunderbird-3*/components/nsExtensionManager.js +debian/tmp/usr/lib/thunderbird-3*/components/nsBlocklistService.js +debian/tmp/usr/lib/thunderbird-3*/components/nsURLFormatter.js +debian/tmp/usr/lib/thunderbird-3*/components/jsconsole-clhandler.js +debian/tmp/usr/lib/thunderbird-3*/components/nsTryToClose.js +debian/tmp/usr/lib/thunderbird-3*/components/pluginGlue.js +debian/tmp/usr/lib/thunderbird-3*/components/txEXSLTRegExFunctions.js +debian/tmp/usr/lib/thunderbird-3*/components/nsContentPrefService.js +debian/tmp/usr/lib/thunderbird-3*/components/nsDefaultCLH.js +debian/tmp/usr/lib/thunderbird-3*/components/nsFilePicker.js +debian/tmp/usr/lib/thunderbird-3*/components/*.xpt + +debian/tmp/usr/lib/thunderbird-3*/components/glautocomp.js +debian/tmp/usr/lib/thunderbird-3*/components/jsmimeemitter.js +debian/tmp/usr/lib/thunderbird-3*/components/nsAbAutoCompleteMyDomain.js +debian/tmp/usr/lib/thunderbird-3*/components/nsAbAutoCompleteSearch.js +debian/tmp/usr/lib/thunderbird-3*/components/nsMsgTraitService.js + +debian/tmp/usr/lib/thunderbird-3*/components/aboutRights.js +debian/tmp/usr/lib/thunderbird-3*/components/nsActivity.js +debian/tmp/usr/lib/thunderbird-3*/components/nsActivityManager.js +debian/tmp/usr/lib/thunderbird-3*/components/nsActivityManagerUI.js +debian/tmp/usr/lib/thunderbird-3*/components/nsLDAPProtocolHandler.js +debian/tmp/usr/lib/thunderbird-3*/components/nsLoginInfo.js +debian/tmp/usr/lib/thunderbird-3*/components/nsLoginManager.js +debian/tmp/usr/lib/thunderbird-3*/components/nsLoginManagerPrompter.js +debian/tmp/usr/lib/thunderbird-3*/components/nsMailNewsCommandLineHandler.js +debian/tmp/usr/lib/thunderbird-3*/components/nsSMTPProtocolHandler.js +debian/tmp/usr/lib/thunderbird-3*/components/steelApplication.js +debian/tmp/usr/lib/thunderbird-3*/components/storage-Legacy.js +debian/tmp/usr/lib/thunderbird-3*/components/storage-mozStorage.js + +debian/tmp/usr/lib/thunderbird-3*/components/NetworkGeolocationProvider.js + +debian/tmp/usr/lib/thunderbird-3*/components/libdbusservice.so +debian/tmp/usr/lib/thunderbird-3*/components/libimgicon.so +debian/tmp/usr/lib/thunderbird-3*/components/libjsd.so +debian/tmp/usr/lib/thunderbird-3*/components/libxpinstall.so +debian/tmp/usr/lib/thunderbird-3*/components/components.list + +debian/thunderbird.js etc/thunderbird/pref --- thunderbird-3.1.8+build1+nobinonly.orig/debian/thunderbird.xml +++ thunderbird-3.1.8+build1+nobinonly/debian/thunderbird.xml @@ -0,0 +1,13 @@ + + + + + + Thunderbird + thunderbird + thunderbird %s + thunderbird + false + + + --- thunderbird-3.1.8+build1+nobinonly.orig/debian/thunderbird.postinst.in +++ thunderbird-3.1.8+build1+nobinonly/debian/thunderbird.postinst.in @@ -0,0 +1,26 @@ +#!/bin/sh + +set -e + +LIBDIR=@LIBDIR@ + +if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] ; then + touch $LIBDIR/.autoreg +fi + +# Clean a possible left over +if [ -f /usr/lib/thunderbird-3.0a1pre/.autoreg ] ; then + rm -f /usr/lib/thunderbird-3.0a1pre/.autoreg + rmdir /usr/lib/thunderbird-3.0a1pre +fi + +#Create symlink to system dictionaries if it doesn't exist + +TB_DICTIONARY_DIR=$LIBDIR/dictionaries +SYS_DICTIONARY_DIR=/usr/share/myspell/dicts + +if [ -d $TB_DICTIONARY_DIR -a ! -h $TB_DICTIONARY_DIR ] +then + rmdir $TB_DICTIONARY_DIR + ln -s $SYS_DICTIONARY_DIR $TB_DICTIONARY_DIR +fi --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/Makefile.in +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/Makefile.in @@ -0,0 +1,57 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Chris Coulson +# +# 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 +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +DEPTH = ../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +MODULE = globalmenu +DIRS = \ + components \ + chrome \ + $(NULL) + +XPI_NAME = globalmenu +INSTALL_EXTENSION_ID = globalmenu@ubuntu.com +XPI_PKGNAME = globalmenu + +DIST_FILES = install.rdf + +include $(topsrcdir)/config/rules.mk --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/install.rdf +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/install.rdf @@ -0,0 +1,34 @@ + + + + + globalmenu@ubuntu.com + 0.5 + true + + + + + {ec8030f7-c20a-464f-9b0e-13a3a9e97384} + 4.0b6pre + 4.0.* + + + + + + + {3550f703-e582-4d05-9a08-453d09bdfdc6} + 3.1 + 3.3.* + + + + + Global Menu Bar integration + This extension integrates the menu bar in to the Unity panel + Chris Coulson + http://launchpad.net/globalmenu-extension + + --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/makefiles.sh +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/makefiles.sh @@ -0,0 +1,44 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Mozilla build system. +# +# The Initial Developer of the Original Code is +# the Mozilla Foundation . +# Portions created by the Initial Developer are Copyright (C) 2007 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Chris Coulson +# +# 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 +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +add_makefiles " +extensions/globalmenu/Makefile +extensions/globalmenu/chrome/Makefile +extensions/globalmenu/components/Makefile +extensions/globalmenu/components/public/Makefile +extensions/globalmenu/components/src/Makefile +" --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/confvars.sh +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/confvars.sh @@ -0,0 +1,4 @@ +MOZ_WEBM=0 +MOZ_OGG=0 +MOZ_WAVE=0 +NECKO_WIFI=0 --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/Makefile.in +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/Makefile.in @@ -0,0 +1,54 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Chris Coulson +# +# 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 +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +DEPTH = ../../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +MODULE = globalmenu + +DIRS = \ + public \ + src \ + $(NULL) + +XPI_NAME = globalmenu + +include $(topsrcdir)/config/rules.mk --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uMenuChangeObserver.h +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uMenuChangeObserver.h @@ -0,0 +1,80 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Communicator. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corp. + * Portions created by the Initial Developer are Copyright (C) 1999 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Mike Pinkerton + * Josh Aas (decomtaminate) + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_MENUCHANGEOBSERVER_H +#define _U_MENUCHANGEOBSERVER_H + +class nsIContent; +class nsIDocument; +class nsIAtom; + +#define NS_DECL_UMENUCHANGEOBSERVER \ +void ObserveAttributeChanged(nsIDocument *aDocument, nsIContent *aContent, nsIAtom *aAttribute); \ +void ObserveContentRemoved(nsIDocument *aDocument, nsIContent *aContainer, nsIContent *aChild, PRInt32 aIndexInContainer); \ +void ObserveContentInserted(nsIDocument *aDocument, nsIContent *aContainer, nsIContent *aChild, PRInt32 aIndexInContainer); + +// Something that wants to be alerted to changes in attributes or changes in +// its corresponding content object. +// +// This interface is used by our menu code so we only have to have one +// nsIDocumentObserver. +// +// Any class that implements this interface must take care to unregister itself +// on deletion. +class uMenuChangeObserver +{ +public: + // XXX use dom::Element + virtual void ObserveAttributeChanged(nsIDocument *aDocument, + nsIContent *aContent, + nsIAtom *aAttribute)=0; + + virtual void ObserveContentRemoved(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer)=0; + + virtual void ObserveContentInserted(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer)=0; +}; + +#endif --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuPopupTracker.h +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuPopupTracker.h @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corp. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUPOPUPTRACKER_H +#define _U_GLOBALMENUPOPUPTRACKER_H + +class uGlobalMenu; + +class uGlobalMenuPopupTracker +{ +public: + uGlobalMenuPopupTracker (): mOpenMenu(nsnull) { }; + virtual void ChildPopupOpen (uGlobalMenu *aMenu) { }; + virtual void ChildPopupClosed (uGlobalMenu *aMenu) { }; + +protected: + uGlobalMenu *mOpenMenu; +}; + +#endif --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuItem.cpp +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuItem.cpp @@ -0,0 +1,829 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifndef MOZILLA_1_9_2_BRANCH +# include +#endif +#include +#include +#ifdef MOZILLA_1_9_2_BRANCH +# include +# include +#endif + +#include +#include +#include +#include + +#include "uGlobalMenuItem.h" +#include "uGlobalMenu.h" +#include "uGlobalMenuPopupTracker.h" +#include "uWidgetAtoms.h" + +// XXX: Borrowed from content/xbl/src/nsXBLPrototypeHandler.cpp. This doesn't +// seem to be publicly available, and we need a way to map key names +// to key codes (so we can then map them to GDK key codes) + +struct keyCodeData { + const char* str; + size_t strlength; + PRUint32 keycode; +}; + +// All of these must be uppercase, since the function below does +// case-insensitive comparison by converting to uppercase. +// XXX: be sure to check this periodically for new symbol additions! +static struct keyCodeData gKeyCodes[] = { + +#define KEYCODE_ENTRY(str) {#str, sizeof(#str) - 1, nsIDOMKeyEvent::DOM_##str} + + KEYCODE_ENTRY(VK_CANCEL), + KEYCODE_ENTRY(VK_BACK_SPACE), + KEYCODE_ENTRY(VK_TAB), + KEYCODE_ENTRY(VK_CLEAR), + KEYCODE_ENTRY(VK_RETURN), + KEYCODE_ENTRY(VK_ENTER), + KEYCODE_ENTRY(VK_SHIFT), + KEYCODE_ENTRY(VK_CONTROL), + KEYCODE_ENTRY(VK_ALT), + KEYCODE_ENTRY(VK_PAUSE), + KEYCODE_ENTRY(VK_CAPS_LOCK), + KEYCODE_ENTRY(VK_ESCAPE), + KEYCODE_ENTRY(VK_SPACE), + KEYCODE_ENTRY(VK_PAGE_UP), + KEYCODE_ENTRY(VK_PAGE_DOWN), + KEYCODE_ENTRY(VK_END), + KEYCODE_ENTRY(VK_HOME), + KEYCODE_ENTRY(VK_LEFT), + KEYCODE_ENTRY(VK_UP), + KEYCODE_ENTRY(VK_RIGHT), + KEYCODE_ENTRY(VK_DOWN), + KEYCODE_ENTRY(VK_PRINTSCREEN), + KEYCODE_ENTRY(VK_INSERT), + KEYCODE_ENTRY(VK_HELP), + KEYCODE_ENTRY(VK_DELETE), + KEYCODE_ENTRY(VK_0), + KEYCODE_ENTRY(VK_1), + KEYCODE_ENTRY(VK_2), + KEYCODE_ENTRY(VK_3), + KEYCODE_ENTRY(VK_4), + KEYCODE_ENTRY(VK_5), + KEYCODE_ENTRY(VK_6), + KEYCODE_ENTRY(VK_7), + KEYCODE_ENTRY(VK_8), + KEYCODE_ENTRY(VK_9), + KEYCODE_ENTRY(VK_SEMICOLON), + KEYCODE_ENTRY(VK_EQUALS), + KEYCODE_ENTRY(VK_A), + KEYCODE_ENTRY(VK_B), + KEYCODE_ENTRY(VK_C), + KEYCODE_ENTRY(VK_D), + KEYCODE_ENTRY(VK_E), + KEYCODE_ENTRY(VK_F), + KEYCODE_ENTRY(VK_G), + KEYCODE_ENTRY(VK_H), + KEYCODE_ENTRY(VK_I), + KEYCODE_ENTRY(VK_J), + KEYCODE_ENTRY(VK_K), + KEYCODE_ENTRY(VK_L), + KEYCODE_ENTRY(VK_M), + KEYCODE_ENTRY(VK_N), + KEYCODE_ENTRY(VK_O), + KEYCODE_ENTRY(VK_P), + KEYCODE_ENTRY(VK_Q), + KEYCODE_ENTRY(VK_R), + KEYCODE_ENTRY(VK_S), + KEYCODE_ENTRY(VK_T), + KEYCODE_ENTRY(VK_U), + KEYCODE_ENTRY(VK_V), + KEYCODE_ENTRY(VK_W), + KEYCODE_ENTRY(VK_X), + KEYCODE_ENTRY(VK_Y), + KEYCODE_ENTRY(VK_Z), + KEYCODE_ENTRY(VK_NUMPAD0), + KEYCODE_ENTRY(VK_NUMPAD1), + KEYCODE_ENTRY(VK_NUMPAD2), + KEYCODE_ENTRY(VK_NUMPAD3), + KEYCODE_ENTRY(VK_NUMPAD4), + KEYCODE_ENTRY(VK_NUMPAD5), + KEYCODE_ENTRY(VK_NUMPAD6), + KEYCODE_ENTRY(VK_NUMPAD7), + KEYCODE_ENTRY(VK_NUMPAD8), + KEYCODE_ENTRY(VK_NUMPAD9), + KEYCODE_ENTRY(VK_MULTIPLY), + KEYCODE_ENTRY(VK_ADD), + KEYCODE_ENTRY(VK_SEPARATOR), + KEYCODE_ENTRY(VK_SUBTRACT), + KEYCODE_ENTRY(VK_DECIMAL), + KEYCODE_ENTRY(VK_DIVIDE), + KEYCODE_ENTRY(VK_F1), + KEYCODE_ENTRY(VK_F2), + KEYCODE_ENTRY(VK_F3), + KEYCODE_ENTRY(VK_F4), + KEYCODE_ENTRY(VK_F5), + KEYCODE_ENTRY(VK_F6), + KEYCODE_ENTRY(VK_F7), + KEYCODE_ENTRY(VK_F8), + KEYCODE_ENTRY(VK_F9), + KEYCODE_ENTRY(VK_F10), + KEYCODE_ENTRY(VK_F11), + KEYCODE_ENTRY(VK_F12), + KEYCODE_ENTRY(VK_F13), + KEYCODE_ENTRY(VK_F14), + KEYCODE_ENTRY(VK_F15), + KEYCODE_ENTRY(VK_F16), + KEYCODE_ENTRY(VK_F17), + KEYCODE_ENTRY(VK_F18), + KEYCODE_ENTRY(VK_F19), + KEYCODE_ENTRY(VK_F20), + KEYCODE_ENTRY(VK_F21), + KEYCODE_ENTRY(VK_F22), + KEYCODE_ENTRY(VK_F23), + KEYCODE_ENTRY(VK_F24), + KEYCODE_ENTRY(VK_NUM_LOCK), + KEYCODE_ENTRY(VK_SCROLL_LOCK), + KEYCODE_ENTRY(VK_COMMA), + KEYCODE_ENTRY(VK_PERIOD), + KEYCODE_ENTRY(VK_SLASH), + KEYCODE_ENTRY(VK_BACK_QUOTE), + KEYCODE_ENTRY(VK_OPEN_BRACKET), + KEYCODE_ENTRY(VK_BACK_SLASH), + KEYCODE_ENTRY(VK_CLOSE_BRACKET), + KEYCODE_ENTRY(VK_QUOTE) + +#undef KEYCODE_ENTRY +}; + +PRUint32 +uGlobalMenuItem::GetKeyCode(nsAString &aKeyName) +{ + nsCAutoString keyName; + CopyUTF16toUTF8(aKeyName, keyName); + ToUpperCase(keyName); // We want case-insensitive comparison with data + // stored as uppercase. + + PRUint32 keyNameLength = keyName.Length(); + const char* keyNameStr = keyName.get(); + for (PRUint16 i = 0; i < (sizeof(gKeyCodes) / sizeof(gKeyCodes[0])); ++i) + if (keyNameLength == gKeyCodes[i].strlength && + !strcmp(gKeyCodes[i].str, keyNameStr)) + return gKeyCodes[i].keycode; + + return 0; +} + +// XXX: Borrowed from widget/src/gtk2/nsGtkKeyUtils.cpp +struct nsKeyConverter { + int vkCode; // Platform independent key code + int keysym; // GDK keysym key code +}; + +// +// Netscape keycodes are defined in widget/public/nsGUIEvent.h +// GTK keycodes are defined in +// +static struct nsKeyConverter nsKeycodes[] = { + { nsIDOMKeyEvent::DOM_VK_CANCEL, GDK_Cancel }, + { nsIDOMKeyEvent::DOM_VK_BACK_SPACE, GDK_BackSpace }, + { nsIDOMKeyEvent::DOM_VK_TAB, GDK_Tab }, + { nsIDOMKeyEvent::DOM_VK_TAB, GDK_ISO_Left_Tab }, + { nsIDOMKeyEvent::DOM_VK_CLEAR, GDK_Clear }, + { nsIDOMKeyEvent::DOM_VK_RETURN, GDK_Return }, + { nsIDOMKeyEvent::DOM_VK_SHIFT, GDK_Shift_L }, + { nsIDOMKeyEvent::DOM_VK_SHIFT, GDK_Shift_R }, + { nsIDOMKeyEvent::DOM_VK_CONTROL, GDK_Control_L }, + { nsIDOMKeyEvent::DOM_VK_CONTROL, GDK_Control_R }, + { nsIDOMKeyEvent::DOM_VK_ALT, GDK_Alt_L }, + { nsIDOMKeyEvent::DOM_VK_ALT, GDK_Alt_R }, + { nsIDOMKeyEvent::DOM_VK_META, GDK_Meta_L }, + { nsIDOMKeyEvent::DOM_VK_META, GDK_Meta_R }, + { nsIDOMKeyEvent::DOM_VK_PAUSE, GDK_Pause }, + { nsIDOMKeyEvent::DOM_VK_CAPS_LOCK, GDK_Caps_Lock }, +#ifndef MOZILLA_1_9_2_BRANCH + { nsIDOMKeyEvent::DOM_VK_KANA, GDK_Kana_Lock }, + { nsIDOMKeyEvent::DOM_VK_KANA, GDK_Kana_Shift }, + { nsIDOMKeyEvent::DOM_VK_HANGUL, GDK_Hangul }, + // { nsIDOMKeyEvent::DOM_VK_JUNJA, GDK_XXX }, + // { nsIDOMKeyEvent::DOM_VK_FINAL, GDK_XXX }, + { nsIDOMKeyEvent::DOM_VK_HANJA, GDK_Hangul_Hanja }, + { nsIDOMKeyEvent::DOM_VK_KANJI, GDK_Kanji }, +#endif + { nsIDOMKeyEvent::DOM_VK_ESCAPE, GDK_Escape }, +#ifndef MOZILLA_1_9_2_BRANCH + { nsIDOMKeyEvent::DOM_VK_CONVERT, GDK_Henkan }, + { nsIDOMKeyEvent::DOM_VK_NONCONVERT, GDK_Muhenkan }, + // { nsIDOMKeyEvent::DOM_VK_ACCEPT, GDK_XXX }, + { nsIDOMKeyEvent::DOM_VK_MODECHANGE, GDK_Mode_switch }, +#endif + { nsIDOMKeyEvent::DOM_VK_SPACE, GDK_space }, + { nsIDOMKeyEvent::DOM_VK_PAGE_UP, GDK_Page_Up }, + { nsIDOMKeyEvent::DOM_VK_PAGE_DOWN, GDK_Page_Down }, + { nsIDOMKeyEvent::DOM_VK_END, GDK_End }, + { nsIDOMKeyEvent::DOM_VK_HOME, GDK_Home }, + { nsIDOMKeyEvent::DOM_VK_LEFT, GDK_Left }, + { nsIDOMKeyEvent::DOM_VK_UP, GDK_Up }, + { nsIDOMKeyEvent::DOM_VK_RIGHT, GDK_Right }, + { nsIDOMKeyEvent::DOM_VK_DOWN, GDK_Down }, +#ifndef MOZILLA_1_9_2_BRANCH + { nsIDOMKeyEvent::DOM_VK_SELECT, GDK_Select }, + { nsIDOMKeyEvent::DOM_VK_PRINT, GDK_Print }, + { nsIDOMKeyEvent::DOM_VK_EXECUTE, GDK_Execute }, +#endif + { nsIDOMKeyEvent::DOM_VK_PRINTSCREEN, GDK_Print }, + { nsIDOMKeyEvent::DOM_VK_INSERT, GDK_Insert }, + { nsIDOMKeyEvent::DOM_VK_DELETE, GDK_Delete }, + { nsIDOMKeyEvent::DOM_VK_HELP, GDK_Help }, + + // keypad keys + { nsIDOMKeyEvent::DOM_VK_LEFT, GDK_KP_Left }, + { nsIDOMKeyEvent::DOM_VK_RIGHT, GDK_KP_Right }, + { nsIDOMKeyEvent::DOM_VK_UP, GDK_KP_Up }, + { nsIDOMKeyEvent::DOM_VK_DOWN, GDK_KP_Down }, + { nsIDOMKeyEvent::DOM_VK_PAGE_UP, GDK_KP_Page_Up }, + // Not sure what these are + //{ nsIDOMKeyEvent::DOM_VK_, GDK_KP_Prior }, + //{ nsIDOMKeyEvent::DOM_VK_, GDK_KP_Next }, + // GDK_KP_Begin is the 5 on the non-numlock keypad + //{ nsIDOMKeyEvent::DOM_VK_, GDK_KP_Begin }, + { nsIDOMKeyEvent::DOM_VK_PAGE_DOWN, GDK_KP_Page_Down }, + { nsIDOMKeyEvent::DOM_VK_HOME, GDK_KP_Home }, + { nsIDOMKeyEvent::DOM_VK_END, GDK_KP_End }, + { nsIDOMKeyEvent::DOM_VK_INSERT, GDK_KP_Insert }, + { nsIDOMKeyEvent::DOM_VK_DELETE, GDK_KP_Delete }, + + { nsIDOMKeyEvent::DOM_VK_MULTIPLY, GDK_KP_Multiply }, + { nsIDOMKeyEvent::DOM_VK_ADD, GDK_KP_Add }, + { nsIDOMKeyEvent::DOM_VK_SEPARATOR, GDK_KP_Separator }, + { nsIDOMKeyEvent::DOM_VK_SUBTRACT, GDK_KP_Subtract }, + { nsIDOMKeyEvent::DOM_VK_DECIMAL, GDK_KP_Decimal }, + { nsIDOMKeyEvent::DOM_VK_DIVIDE, GDK_KP_Divide }, + { nsIDOMKeyEvent::DOM_VK_RETURN, GDK_KP_Enter }, + { nsIDOMKeyEvent::DOM_VK_NUM_LOCK, GDK_Num_Lock }, + { nsIDOMKeyEvent::DOM_VK_SCROLL_LOCK,GDK_Scroll_Lock }, + + { nsIDOMKeyEvent::DOM_VK_COMMA, GDK_comma }, + { nsIDOMKeyEvent::DOM_VK_PERIOD, GDK_period }, + { nsIDOMKeyEvent::DOM_VK_SLASH, GDK_slash }, + { nsIDOMKeyEvent::DOM_VK_BACK_SLASH, GDK_backslash }, + { nsIDOMKeyEvent::DOM_VK_BACK_QUOTE, GDK_grave }, + { nsIDOMKeyEvent::DOM_VK_OPEN_BRACKET, GDK_bracketleft }, + { nsIDOMKeyEvent::DOM_VK_CLOSE_BRACKET, GDK_bracketright }, + { nsIDOMKeyEvent::DOM_VK_SEMICOLON, GDK_colon }, + { nsIDOMKeyEvent::DOM_VK_QUOTE, GDK_apostrophe }, + + // context menu key, keysym 0xff67, typically keycode 117 on 105-key (Microsoft) + // x86 keyboards, located between right 'Windows' key and right Ctrl key + { nsIDOMKeyEvent::DOM_VK_CONTEXT_MENU, GDK_Menu }, +#ifndef MOZILLA_1_9_2_BRANCH + { nsIDOMKeyEvent::DOM_VK_SLEEP, GDK_Sleep }, +#endif + + // NS doesn't have dash or equals distinct from the numeric keypad ones, + // so we'll use those for now. See bug 17008: + { nsIDOMKeyEvent::DOM_VK_SUBTRACT, GDK_minus }, + { nsIDOMKeyEvent::DOM_VK_EQUALS, GDK_equal }, + + // Some shifted keys, see bug 15463 as well as 17008. + // These should be subject to different keyboard mappings. + { nsIDOMKeyEvent::DOM_VK_QUOTE, GDK_quotedbl }, + { nsIDOMKeyEvent::DOM_VK_OPEN_BRACKET, GDK_braceleft }, + { nsIDOMKeyEvent::DOM_VK_CLOSE_BRACKET, GDK_braceright }, + { nsIDOMKeyEvent::DOM_VK_BACK_SLASH, GDK_bar }, + { nsIDOMKeyEvent::DOM_VK_SEMICOLON, GDK_semicolon }, + { nsIDOMKeyEvent::DOM_VK_BACK_QUOTE, GDK_asciitilde }, + { nsIDOMKeyEvent::DOM_VK_COMMA, GDK_less }, + { nsIDOMKeyEvent::DOM_VK_PERIOD, GDK_greater }, + { nsIDOMKeyEvent::DOM_VK_SLASH, GDK_question }, + { nsIDOMKeyEvent::DOM_VK_1, GDK_exclam }, + { nsIDOMKeyEvent::DOM_VK_2, GDK_at }, + { nsIDOMKeyEvent::DOM_VK_3, GDK_numbersign }, + { nsIDOMKeyEvent::DOM_VK_4, GDK_dollar }, + { nsIDOMKeyEvent::DOM_VK_5, GDK_percent }, + { nsIDOMKeyEvent::DOM_VK_6, GDK_asciicircum }, + { nsIDOMKeyEvent::DOM_VK_7, GDK_ampersand }, + { nsIDOMKeyEvent::DOM_VK_8, GDK_asterisk }, + { nsIDOMKeyEvent::DOM_VK_9, GDK_parenleft }, + { nsIDOMKeyEvent::DOM_VK_0, GDK_parenright }, + { nsIDOMKeyEvent::DOM_VK_SUBTRACT, GDK_underscore }, + { nsIDOMKeyEvent::DOM_VK_EQUALS, GDK_plus } +}; + +PRUint32 +uGlobalMenuItem::MozKeyCodeToGdkKeyCode(PRUint32 aMozKeyCode) +{ + if(aMozKeyCode >= nsIDOMKeyEvent::DOM_VK_A && + aMozKeyCode <= nsIDOMKeyEvent::DOM_VK_Z) + return aMozKeyCode; + + if(aMozKeyCode >= nsIDOMKeyEvent::DOM_VK_0 && + aMozKeyCode <= nsIDOMKeyEvent::DOM_VK_9) + return aMozKeyCode; + + if(aMozKeyCode >= nsIDOMKeyEvent::DOM_VK_NUMPAD0 && + aMozKeyCode <= nsIDOMKeyEvent::DOM_VK_NUMPAD9) + return aMozKeyCode - nsIDOMKeyEvent::DOM_VK_NUMPAD0 + GDK_0; + + if(aMozKeyCode >= nsIDOMKeyEvent::DOM_VK_F1 && + aMozKeyCode <= nsIDOMKeyEvent::DOM_VK_F24) + return aMozKeyCode - nsIDOMKeyEvent::DOM_VK_F1 + GDK_KEY_F1; + + for(PRUint32 i = 0; i < NS_ARRAY_LENGTH(nsKeycodes); i++) { + if(nsKeycodes[i].vkCode == aMozKeyCode) + return nsKeycodes[i].keysym; + } + + return GDK_VoidSymbol; +} + +void +uGlobalMenuItem::SyncAccelFromContent() +{ + nsAutoString modStr; + mKeyContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::modifiers, modStr); + + PRUint32 modifier = 0; + + if(!modStr.IsEmpty()) { + char* str = ToNewUTF8String(modStr); + char *token = strtok(str, ", \t"); + while(token) { + if(strcmp(token, "shift") == 0) { + modifier |= GDK_SHIFT_MASK; + } else if(strcmp(token, "alt") == 0) { + modifier |= GDK_MOD1_MASK; + } else if(strcmp(token, "meta") == 0) { + modifier |= GDK_META_MASK; + } else if(strcmp(token, "control") == 0) { + modifier |= GDK_CONTROL_MASK; + } else if(strcmp(token, "accel") == 0) { + nsCOMPtr prefs = do_GetService(NS_PREFSERVICE_CONTRACTID); + if(prefs) { + PRInt32 accel; + prefs->GetIntPref("ui.key.accelKey", &accel); + if(accel == nsIDOMKeyEvent::DOM_VK_META) { + modifier |= GDK_META_MASK; + } else if(accel == nsIDOMKeyEvent::DOM_VK_ALT) { + modifier |= GDK_MOD1_MASK; + } else { + modifier |= GDK_CONTROL_MASK; + } + } else { + // This is the default, see layout/xul/base/src/nsMenuFrame.cpp + modifier |= GDK_CONTROL_MASK; + } + } + + token = strtok(nsnull, ", \t"); + } + + nsMemory::Free(str); + } + + nsAutoString keyStr; + guint key = GDK_VoidSymbol; + mKeyContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::key, keyStr); + + nsCAutoString cKeyStr; + CopyUTF16toUTF8(keyStr, cKeyStr); + + if(!cKeyStr.IsEmpty()) { + key = gdk_keyval_from_name(cKeyStr.get()); + } else { + mKeyContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::keycode, keyStr); + if(!keyStr.IsEmpty()) + key = MozKeyCodeToGdkKeyCode(GetKeyCode(keyStr)); + } + + if(key != GDK_VoidSymbol) { + dbusmenu_menuitem_property_set_shortcut(mDbusMenuItem, key, + static_cast(modifier)); + } else { + dbusmenu_menuitem_property_remove(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_SHORTCUT); + } +} + +void +uGlobalMenuItem::SyncTypeAndStateFromContent() +{ + static nsIContent::AttrValuesArray attrs[] = + { &uWidgetAtoms::checkbox, &uWidgetAtoms::radio, nsnull }; + PRInt32 type = mContent->FindAttrValueIn(kNameSpaceID_None, + uWidgetAtoms::type, + attrs, eCaseMatters); + + if(type >= 0 && type < 2) { + if(type == 0) { + dbusmenu_menuitem_property_set(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE, + DBUSMENU_MENUITEM_TOGGLE_CHECK); + mType = CheckBox; + } else if(type == 1) { + dbusmenu_menuitem_property_set(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE, + DBUSMENU_MENUITEM_TOGGLE_RADIO); + mType = Radio; + } + + nsIContent *content = mCommandContent ? mCommandContent : mContent; + PRBool lastToggleState = mToggleState; + mToggleState = content->AttrValueIs(kNameSpaceID_None, + uWidgetAtoms::checked, + uWidgetAtoms::_true, + eCaseMatters); + dbusmenu_menuitem_property_set_int(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_TOGGLE_STATE, + mToggleState ? + DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED : + DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED); + + if(mCommandContent && lastToggleState != mToggleState) { + mContent->SetAttr(kNameSpaceID_None, uWidgetAtoms::checked, + mToggleState ? NS_LITERAL_STRING("true") : + NS_LITERAL_STRING("false"), PR_TRUE); + } + + mIsToggle = PR_TRUE; + } else { + dbusmenu_menuitem_property_remove(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_TOGGLE_TYPE); + dbusmenu_menuitem_property_remove(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_TOGGLE_STATE); + mIsToggle = PR_FALSE; + mType = Normal; + } +} + +void +uGlobalMenuItem::SyncProperties() +{ + SyncVisibilityFromContent(); + if(mCommandContent) { + SyncSensitivityFromContent(mCommandContent); + } else { + SyncSensitivityFromContent(); + } + SyncLabelFromContent(); + SyncTypeAndStateFromContent(); + if(mKeyContent) { + SyncAccelFromContent(); + } else { + dbusmenu_menuitem_property_remove(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_SHORTCUT); + } + SyncIconFromContent(); +} + +/*static*/ void +uGlobalMenuItem::ItemActivatedCallback(DbusmenuMenuitem *menuItem, + PRUint32 timeStamp, + void *data) +{ + uGlobalMenuItem *self = static_cast(data); + self->Activate(); +} + +void +uGlobalMenuItem::Activate() +{ + // This first bit seems backwards, but it's not really. If autocheck is + // not set or autocheck==true, then the checkbox state is usually updated + // by the input event that clicked on the menu item. In this case, we need + // to manually update the checkbox state. If autocheck==false, then the input + // event doesn't toggle the checkbox state, and it is up to the handler on + // this node to do it instead. In this case, we leave it alone + + // XXX: it is important to update the checkbox state before dispatching + // the event, as the handler might check the new state + if(!mContent->AttrValueIs(kNameSpaceID_None, uWidgetAtoms::autocheck, + uWidgetAtoms::_false, eCaseMatters) && + mType != Normal) { + if (!mToggleState) { + // We're currently not checked, so check now + mContent->SetAttr(kNameSpaceID_None, uWidgetAtoms::checked, + NS_LITERAL_STRING("true"), PR_TRUE); + } else if (mToggleState && mType == CheckBox) { + // We're currently checked, so uncheck now. Don't do this for radio buttons + mContent->UnsetAttr(kNameSpaceID_None, uWidgetAtoms::checked, PR_TRUE); + } + } + + nsIDocument *doc = mContent->GetOwnerDoc(); + if(doc) { + nsCOMPtr docEvent = do_QueryInterface(doc); + if(docEvent) { + nsCOMPtr event; + docEvent->CreateEvent(NS_LITERAL_STRING("xulcommandevent"), + getter_AddRefs(event)); + if(event) { + nsCOMPtr cmdEvent = do_QueryInterface(event); + if(cmdEvent) { + nsCOMPtr domDocView = do_QueryInterface(doc); + nsCOMPtr window; + domDocView->GetDefaultView(getter_AddRefs(window)); + if(window) { + cmdEvent->InitCommandEvent(NS_LITERAL_STRING("command"), + PR_TRUE, PR_TRUE, window, 0, + PR_FALSE, PR_FALSE, PR_FALSE, + PR_FALSE, nsnull); + nsCOMPtr target = do_QueryInterface(mContent); + if(target) { + nsCOMPtr priv = do_QueryInterface(event); + if(priv) { + priv->SetTrusted(PR_TRUE); + } + PRBool dummy; + target->DispatchEvent(event, &dummy); + } + } + } + } + } + } + + if(mParent->GetType() == Menu) { + // XXX: Is this ever false really? I guess someone could add a menuitem + // to the menubar + uGlobalMenu *parent = static_cast(mParent); + parent->OnClose(PR_TRUE); + } +} + +nsresult +uGlobalMenuItem::ConstructDbusMenuItem() +{ + mDbusMenuItem = dbusmenu_menuitem_new(); + if(!mDbusMenuItem) + return NS_ERROR_OUT_OF_MEMORY; + + mHandlerID = g_signal_connect(G_OBJECT(mDbusMenuItem), + DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, + G_CALLBACK(ItemActivatedCallback), + this); + + SyncProperties(); + + return NS_OK; +} + +uGlobalMenuItem::~uGlobalMenuItem() +{ + mListener->UnregisterForContentChanges(mContent); + if(mCommandContent) { + mListener->UnregisterForContentChanges(mCommandContent); + } + if(mKeyContent) { + mListener->UnregisterForContentChanges(mKeyContent); + } + + DestroyIconLoader(); + + if(mDbusMenuItem) { + g_signal_handler_disconnect(mDbusMenuItem, mHandlerID); + g_object_unref(mDbusMenuItem); + } +} + +nsresult +uGlobalMenuItem::Init(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent) +{ + NS_ENSURE_ARG(aParent); + NS_ENSURE_ARG(aListener); + NS_ENSURE_ARG(aContent); + + mParent = aParent; + mListener = aListener; + mContent = aContent; + + nsIDocument *doc = mContent->GetCurrentDoc(); + if(doc) { + nsAutoString attr; + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::command, attr); +#ifdef MOZILLA_1_9_2_BRANCH + nsCOMPtr domDoc(do_QueryInterface(doc)); + nsCOMPtr domElmt; +#endif + if(!attr.IsEmpty()) { +#ifdef MOZILLA_1_9_2_BRANCH + if (domDoc) { + domDoc->GetElementById(attr, getter_AddRefs(domElmt)); + } + + mCommandContent = do_QueryInterface(domElmt); +#else + mCommandContent = doc->GetElementById(attr); +#endif + } + + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::key, attr); + if(!attr.IsEmpty()) { +#ifdef MOZILLA_1_9_2_BRANCH + if (domDoc) { + domDoc->GetElementById(attr, getter_AddRefs(domElmt)); + } + + mKeyContent = do_QueryInterface(domElmt); +#else + mKeyContent = doc->GetElementById(attr); +#endif + } + } + + nsresult rv = ConstructDbusMenuItem(); + NS_ENSURE_SUCCESS(rv, rv); + + mListener->RegisterForContentChanges(mContent, this); + if(mCommandContent) { + mListener->RegisterForContentChanges(mCommandContent, this); + } + if(mKeyContent) { + mListener->RegisterForContentChanges(mKeyContent, this); + } + + return NS_OK; +} + +void +uGlobalMenuItem::UncheckSiblings() +{ + if (mType != Radio) { + // If we're not a radio button, we don't care + return; + } + + nsAutoString name; + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::name, name); + if (name.IsEmpty()) { + // If we don't have a name, then we can't find our siblings + return; + } + + nsIContent *parent = mContent->GetParent(); + if (!parent) { + return; + } + + PRUint32 count = parent->GetChildCount(); + for (PRUint32 i = 0; i < count; i++) { + nsIContent *sibling = parent->GetChildAt(i); + if (sibling->AttrValueIs(kNameSpaceID_None, uWidgetAtoms::name, + name, eCaseMatters) && sibling != mContent) { + if (sibling->AttrValueIs(kNameSpaceID_None, uWidgetAtoms::type, + uWidgetAtoms::radio, eCaseMatters)) { + sibling->UnsetAttr(kNameSpaceID_None, uWidgetAtoms::checked, PR_TRUE); + } + } + } +} + +void +uGlobalMenuItem::ObserveAttributeChanged(nsIDocument *aDocument, + nsIContent *aContent, + nsIAtom *aAttribute) +{ + NS_ASSERTION(aContent == mContent || aContent == mCommandContent || + aContent == mKeyContent, + "Received an event that wasn't meant for us!"); + + nsIDocument *doc = mContent->GetCurrentDoc(); + + if(aAttribute == uWidgetAtoms::command && doc && aContent == mContent) { + if(mCommandContent) { + mListener->UnregisterForContentChanges(mCommandContent); + } + nsAutoString command; + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::command, command); + if(!command.IsEmpty()) { +#ifdef MOZILLA_1_9_2_BRANCH + nsCOMPtr domDoc(do_QueryInterface(doc)); + nsCOMPtr domElmt; + + if (domDoc) { + domDoc->GetElementById(command, getter_AddRefs(domElmt)); + } + + mCommandContent = do_QueryInterface(domElmt); +#else + mCommandContent = doc->GetElementById(command); +#endif + if(mCommandContent) { + mListener->RegisterForContentChanges(mCommandContent, this); + } + } else { + mCommandContent = nsnull; + } + SyncProperties(); + } else if(aAttribute == uWidgetAtoms::key && doc) { + if(mKeyContent) { + mListener->UnregisterForContentChanges(mKeyContent); + } + nsAutoString key; + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::key, key); + if(!key.IsEmpty()) { +#ifdef MOZILLA_1_9_2_BRANCH + nsCOMPtr domDoc(do_QueryInterface(doc)); + nsCOMPtr domElmt; + + if (domDoc) { + domDoc->GetElementById(key, getter_AddRefs(domElmt)); + } + + mKeyContent = do_QueryInterface(domElmt); +#else + mKeyContent = doc->GetElementById(key); +#endif + if(mKeyContent) { + mListener->RegisterForContentChanges(mKeyContent, this); + } + } else { + mKeyContent = nsnull; + } + SyncProperties(); + } else if(aAttribute == uWidgetAtoms::label || + aAttribute == uWidgetAtoms::hidden || + aAttribute == uWidgetAtoms::disabled || + aAttribute == uWidgetAtoms::key || + aAttribute == uWidgetAtoms::keycode || + aAttribute == uWidgetAtoms::modifiers || + aAttribute == uWidgetAtoms::checked || + aAttribute == uWidgetAtoms::type || + aAttribute == uWidgetAtoms::image) { + SyncProperties(); + + if (aAttribute == uWidgetAtoms::checked && + mContent->AttrValueIs(kNameSpaceID_None, uWidgetAtoms::checked, + uWidgetAtoms::_true, eCaseMatters)) { + UncheckSiblings(); + } + } +} + +void +uGlobalMenuItem::ObserveContentRemoved(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + NS_ASSERTION(0, "We can't remove content from a menuitem!"); +} + +void +uGlobalMenuItem::ObserveContentInserted(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + NS_ASSERTION(0, "We can't insert content in to a menuitem!"); +} --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/Makefile.in +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/Makefile.in @@ -0,0 +1,100 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Chris Coulson +# +# 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 +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +DEPTH = ../../../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +IS_COMPONENT = 1 +MODULE = globalmenu +LIBRARY_NAME = globalmenu +MODULE_NAME = uGlobalMenuModule +#USE_STATIC_LIBS = 1 +#EXPORT_LIBRARY = 1 + +XPI_NAME = globalmenu + +CPPSRCS = \ + uGlobalMenuModule.cpp \ + uGlobalMenuLoader.cpp \ + uGlobalMenuService.cpp \ + uGlobalMenuBar.cpp \ + uGlobalMenuSeparator.cpp \ + uGlobalMenuItem.cpp \ + uGlobalMenuDummy.cpp \ + uGlobalMenu.cpp \ + uGlobalMenuDocListener.cpp \ + uGlobalMenuObject.cpp \ + uWidgetAtoms.cpp \ + $(NULL) + +ifneq (extensions, $(MOZ_BUILD_APP)) +# Support in-tree builds where we need to figure this out for ourselves +MOZILLA_BRANCH_VERSION=$(shell echo $(MOZILLA_VERSION) | sed -e 's/^\([0-9]\.[0-9]\.[0-9]\).*/\1/;') + +MOZILLA_1_9_2_BRANCH= +ifeq (1.9.2, $(MOZILLA_BRANCH_VERSION)) +MOZILLA_1_9_2_BRANCH=1 +endif +endif + +ifeq (1, $(MOZILLA_1_9_2_BRANCH)) +XPCOM_GLUE_LDOPTS_REAL=$(shell echo $(XPCOM_GLUE_LDOPTS) | sed -e 's/-lmozalloc//') +else +XPCOM_GLUE_LDOPTS_REAL=$(XPCOM_GLUE_LDOPTS) +endif + +EXTRA_DSO_LDOPTS += $(XPCOM_GLUE_LDOPTS_REAL) \ + $(NSPR_LIBS) \ + $(DBUSMENU_LIBS) \ + $(MOZ_GTK2_LIBS) \ + $(NULL) + +include $(topsrcdir)/config/rules.mk + +CXXFLAGS += $(DBUSMENU_CFLAGS) \ + $(MOZ_GTK2_CFLAGS) \ + $(NULL) + +ifneq (extensions, $(MOZ_BUILD_APP)) +ifeq (1, $(MOZILLA_1_9_2_BRANCH)) +CXXFLAGS += -DMOZILLA_1_9_2_BRANCH +endif +endif --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuService.h +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuService.h @@ -0,0 +1,146 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUSERVICE_H +#define _U_GLOBALMENUSERVICE_H + +#include +#include +#include +#include + +#include +#include + +#include "uGlobalMenuBar.h" +#include "uIGlobalMenuService.h" + +#define U_GLOBALMENUSERVICE_CID \ +{ 0xa9e41684, 0xbf71, 0x46e3, { 0x93, 0xbf, 0x3c, 0xda, 0x1e, 0xc6, 0x16, 0x49 } } + +#define U_GLOBALMENUSERVICE_CONTRACTID "@canonical.com/globalmenu-service;1" + +class nsIWidget; +class nsIDOMWindow; + +class uGlobalMenuRequestAutoCanceller +{ +public: + static uGlobalMenuRequestAutoCanceller* Create() + { + uGlobalMenuRequestAutoCanceller *canceller = + new uGlobalMenuRequestAutoCanceller(); + if (!canceller) { + return nsnull; + } + + if (!canceller->Init()) { + delete canceller; + canceller = nsnull; + } + + return canceller; + } + + GCancellable* GetCancellable() + { + return mCancellable; + } + + ~uGlobalMenuRequestAutoCanceller () + { + if (mCancellable) { + g_cancellable_cancel(mCancellable); + g_object_unref(mCancellable); + } + } +private: + uGlobalMenuRequestAutoCanceller () { }; + PRBool Init() + { + mCancellable = g_cancellable_new(); + return mCancellable ? PR_TRUE : PR_FALSE; + } + + GCancellable *mCancellable; +}; + +class uGlobalMenuService: public uIGlobalMenuService, + public nsIObserver +{ + friend class RegisterWindowCbData; +public: + NS_DECL_ISUPPORTS + NS_DECL_UIGLOBALMENUSERVICE + NS_DECL_NSIOBSERVER + + uGlobalMenuService () : mOnline(PR_FALSE), + mDbusProxy(NULL), + mCancellable(NULL) { }; + nsresult Init(); + + ~uGlobalMenuService (); + +protected: + GDBusProxy* GetDbusProxy() { return mDbusProxy; } + +private: + void SetOnline (PRBool aOnline); + static void ProxyCreatedCallback (GObject *object, + GAsyncResult *res, + gpointer userdata); + static void NameOwnerChangedCallback (GObject *object, + GParamSpec *pspec, + gpointer userdata); + static void RegisterWindowCallback (GObject *object, + GAsyncResult *res, + gpointer userdata); + PRBool WidgetHasGlobalMenu (nsIWidget *aWidget); + void DestroyMenus (); + already_AddRefed DOMWindowToWidget(nsIDOMWindow *aDOMWindow); + void DestroyMenuForWidget (nsIWidget *aWidget); + + PRBool mOnline; + GDBusProxy *mDbusProxy; + nsAutoPtr mCancellable; + PRUint32 mNOCHandlerID; + nsTArray< nsAutoPtr > mMenus; + nsTArray< nsAutoPtr > mPendingMenus; +}; + +#endif --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuDocListener.cpp +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuDocListener.cpp @@ -0,0 +1,273 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Josh Aas + * Thomas K. Dyas + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#ifndef MOZILLA_1_9_2_BRANCH +#include +#endif +#include +#include + +#include "uGlobalMenuDocListener.h" + +NS_IMPL_ISUPPORTS1(uGlobalMenuDocListener, nsIMutationObserver) + +nsresult +uGlobalMenuDocListener::Init(nsIContent *rootNode) +{ + NS_ENSURE_ARG(rootNode); + + mDocument = rootNode->GetOwnerDoc(); + if (!mDocument) + return NS_ERROR_FAILURE; + mDocument->AddMutationObserver(this); + + return NS_OK; +} + +void +uGlobalMenuDocListener::Destroy() +{ + if (mDocument) { + mDocument->RemoveMutationObserver(this); + } +} + +uGlobalMenuDocListener::uGlobalMenuDocListener() : + mDocument(nsnull) +{ + mContentToObserverTable.Init(); +} + +void +uGlobalMenuDocListener::CharacterDataWillChange(nsIDocument *aDocument, + nsIContent *aContent, + CharacterDataChangeInfo *aInfo) +{ + +} + +void +uGlobalMenuDocListener::CharacterDataChanged(nsIDocument *aDocument, + nsIContent *aContent, + CharacterDataChangeInfo *aInfo) +{ + +} + +void +uGlobalMenuDocListener::AttributeWillChange(nsIDocument *aDocument, +#ifdef MOZILLA_1_9_2_BRANCH + nsIContent *aContent, +#else + mozilla::dom::Element *aElement, +#endif + PRInt32 aNameSpaceID, + nsIAtom *aAttribute, + PRInt32 aModType) +{ + +} + +void +uGlobalMenuDocListener::AttributeChanged(nsIDocument *aDocument, +#ifdef MOZILLA_1_9_2_BRANCH + nsIContent *aElement, +#else + mozilla::dom::Element *aElement, +#endif + PRInt32 aNameSpaceID, + nsIAtom *aAttribute, +#ifdef MOZILLA_1_9_2_BRANCH + PRInt32 aModType, + PRUint32 aStateMask) +#else + PRInt32 aModType) +#endif +{ + if(!aElement) + return; + + uMenuChangeObserver *obs = LookupContentChangeObserver(aElement); + if(obs) + obs->ObserveAttributeChanged(aDocument, aElement, aAttribute); +} + +void +uGlobalMenuDocListener::ContentAppended(nsIDocument *aDocument, + nsIContent *aContainer, +#ifndef MOZILLA_1_9_2_BRANCH + nsIContent *aFirstNewContent, +#endif + PRInt32 aNewIndexInContainer) +{ +#ifdef MOZILLA_1_9_2_BRANCH + PRUint32 count = aContainer->GetChildCount(); + while ((PRUint32)aNewIndexInContainer < count) { + nsIContent *cur = aContainer->GetChildAt(aNewIndexInContainer); +#else + for (nsIContent* cur = aFirstNewContent; cur; cur = cur->GetNextSibling()) { +#endif + ContentInserted(aDocument, aContainer, cur, aNewIndexInContainer); + aNewIndexInContainer++; + } +} + +void +uGlobalMenuDocListener::ContentInserted(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + if(!aContainer) + return; + + uMenuChangeObserver *obs = LookupContentChangeObserver(aContainer); + if(obs) + obs->ObserveContentInserted(aDocument, aContainer, aChild, + aIndexInContainer); + + PRUint32 count = mGlobalObservers.Length(); + for (PRUint32 i = 0; i < count; i++) { + if (obs && mGlobalObservers[i] != obs) { + mGlobalObservers[i]->ObserveContentInserted(aDocument, aContainer, + aChild, aIndexInContainer); + } + } +} + +void +uGlobalMenuDocListener::ContentRemoved(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, +#ifdef MOZILLA_1_9_2_BRANCH + PRInt32 aIndexInContainer) +#else + PRInt32 aIndexInContainer, + nsIContent *aPreviousSibling) +#endif +{ + if(!aContainer) + return; + + uMenuChangeObserver *obs = LookupContentChangeObserver(aContainer); + if(obs) + obs->ObserveContentRemoved(aDocument, aContainer, aChild, + aIndexInContainer); + + PRUint32 count = mGlobalObservers.Length(); + for (PRUint32 i = 0; i < count; i++) { + if (obs && mGlobalObservers[i] != obs) { + mGlobalObservers[i]->ObserveContentRemoved(aDocument, aContainer, aChild, + aIndexInContainer); + } + } +} + +void +uGlobalMenuDocListener::NodeWillBeDestroyed(const nsINode *aNode) +{ + mDocument = nsnull; +} + +void +uGlobalMenuDocListener::ParentChainChanged(nsIContent *aContent) +{ + +} + +void +uGlobalMenuDocListener::RegisterForContentChanges(nsIContent *aContent, + uMenuChangeObserver *aMenuObject) +{ + mContentToObserverTable.Put(aContent, aMenuObject); +} + +void +uGlobalMenuDocListener::UnregisterForContentChanges(nsIContent *aContent) +{ + mContentToObserverTable.Remove(aContent); +} + +void +uGlobalMenuDocListener::RegisterForAllChanges(uMenuChangeObserver *aMenuObject) +{ + if (!aMenuObject) { + return; + } + + PRUint32 count = mGlobalObservers.Length(); + for (PRUint32 i = 0; i < count; i ++) { + if (mGlobalObservers[i] == aMenuObject) { + // Don't add more than once + return; + } + } + mGlobalObservers.AppendElement(aMenuObject); +} + +void +uGlobalMenuDocListener::UnregisterForAllChanges(uMenuChangeObserver *aMenuObject) +{ + if (!aMenuObject) { + return; + } + + PRUint32 count = mGlobalObservers.Length(); + for (PRUint32 i = 0; i < count; i++) { + if (mGlobalObservers[i] == aMenuObject) { + mGlobalObservers.RemoveElementAt(i); + return; + } + } +} + +uMenuChangeObserver* +uGlobalMenuDocListener::LookupContentChangeObserver(nsIContent *aContent) +{ + uMenuChangeObserver *result; + if (mContentToObserverTable.Get(aContent, &result)) + return result; + else + return nsnull; +} --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuModule.cpp +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuModule.cpp @@ -0,0 +1,104 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Suresh Duddu + * Chris Coulson + * + * Alternatively, the contents of this file may be used under the terms of + * either of the GNU General Public License Version 2 or later (the "GPL"), + * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include "nsIClassInfoImpl.h" +#ifdef MOZILLA_1_9_2_BRANCH +#include "nsIGenericFactory.h" +#else +#include "mozilla/ModuleUtils.h" +#endif +#include "uGlobalMenuService.h" +#include "uGlobalMenuLoader.h" + +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(uGlobalMenuService, Init) +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(uGlobalMenuLoader, Init) + +#ifndef MOZILLA_1_9_2_BRANCH + +NS_DEFINE_NAMED_CID(U_GLOBALMENUSERVICE_CID); +NS_DEFINE_NAMED_CID(U_GLOBALMENULOADER_CID); + +static const mozilla::Module::CIDEntry kGlobalMenuCIDs[] = { + { &kU_GLOBALMENUSERVICE_CID, false, NULL, uGlobalMenuServiceConstructor }, + { &kU_GLOBALMENULOADER_CID, false, NULL, uGlobalMenuLoaderConstructor }, + { NULL } +}; + +static const mozilla::Module::ContractIDEntry kGlobalMenuContracts[] = { + { U_GLOBALMENUSERVICE_CONTRACTID, &kU_GLOBALMENUSERVICE_CID }, + { U_GLOBALMENULOADER_CONTRACTID, &kU_GLOBALMENULOADER_CID }, + { NULL } +}; + +static const mozilla::Module kGlobalMenuModule = { + mozilla::Module::kVersion, + kGlobalMenuCIDs, + kGlobalMenuContracts +}; + +// The following line implements the one-and-only "NSModule" symbol exported from this +// shared library. +NSMODULE_DEFN(uGlobalMenuModule) = &kGlobalMenuModule; + +#else + +// For each class that wishes to support nsIClassInfo, add a line like this +NS_DECL_CLASSINFO(uGlobalMenuService) +NS_DECL_CLASSINFO(uGlobalMenuLoader) + +static const nsModuleComponentInfo components[] = +{ + { "Global Menu Service", + U_GLOBALMENUSERVICE_CID, + U_GLOBALMENUSERVICE_CONTRACTID, + uGlobalMenuServiceConstructor, + NULL, NULL + }, + + { "Global Menu Loader", + U_GLOBALMENULOADER_CID, + U_GLOBALMENULOADER_CONTRACTID, + uGlobalMenuLoaderConstructor, + NULL, NULL + } +}; + +NS_IMPL_NSGETMODULE(uGlobalMenuModule, components) + +#endif --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuLoader.h +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuLoader.h @@ -0,0 +1,79 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include + +#include "uIGlobalMenuService.h" +#include "uIGlobalMenuLoader.h" + +#define U_GLOBALMENULOADER_CID \ +{ 0x1e8f2f48, 0xe0a8, 0x4649, { 0x98, 0xef, 0x13, 0x22, 0xc0, 0x3f, 0xf0, 0x8e } } + +#define U_GLOBALMENULOADER_CONTRACTID "@canonical.com/globalmenu-loader;1" + +class nsIXULWindow; +class nsIDocShell; +class nsIWidget; + +class uGlobalMenuLoader: public nsIObserver, + public nsIWindowMediatorListener, + public uIGlobalMenuLoader, + public nsIWebProgressListener, + public nsSupportsWeakReference +{ +public: + NS_DECL_ISUPPORTS + NS_DECL_NSIOBSERVER + NS_DECL_NSIWINDOWMEDIATORLISTENER + NS_DECL_NSIWEBPROGRESSLISTENER + + uGlobalMenuLoader () { }; + ~uGlobalMenuLoader (); + nsresult Init (); + +private: + void RegisterAllMenus (); + void RegisterMenuForWindow (nsIXULWindow *aWindow); + PRBool RegisterMenu (nsIWidget *aWindow, + nsIDocShell *aDocShell); + + nsCOMPtr mService; +}; --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuDocListener.h +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuDocListener.h @@ -0,0 +1,77 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Josh Aas + * Thomas K. Dyas + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUDOCLISTENER_H +#define _U_GLOBALMENUDOCLISTENER_H + +#include +#include +#include +#include + +#include "uMenuChangeObserver.h" + +class nsIContent; +class nsIDocument; + +class uGlobalMenuDocListener: public nsIMutationObserver +{ +public: + NS_DECL_ISUPPORTS + NS_DECL_NSIMUTATIONOBSERVER + + uGlobalMenuDocListener (); + nsresult Init (nsIContent *rootNode); + void RegisterForContentChanges (nsIContent *aContent, + uMenuChangeObserver *aMenuObject); + void UnregisterForContentChanges (nsIContent *aContent); + void RegisterForAllChanges (uMenuChangeObserver *aMenuObject); + void UnregisterForAllChanges (uMenuChangeObserver *aMenuObject); + void Destroy (); + ~uGlobalMenuDocListener () { }; + +private: + uMenuChangeObserver* LookupContentChangeObserver (nsIContent *aContent); + + nsIDocument *mDocument; + nsDataHashtable, uMenuChangeObserver *> mContentToObserverTable; + nsTArray mGlobalObservers; +}; + +#endif --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenu.h +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenu.h @@ -0,0 +1,104 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENU_H +#define _U_GLOBALMENU_H + +#include +#include +#include +#include +#include + +#include + +#include "uGlobalMenuObject.h" +#include "uMenuChangeObserver.h" +#include "uGlobalMenuPopupTracker.h" + +class uGlobalMenuItem; +class uGlobalMenuBar; +class uGlobalMenuDocListener; + +class uGlobalMenu: public uGlobalMenuObject, + public uMenuChangeObserver +{ + friend class uGlobalMenuItem; + friend class uGlobalMenuBar; +public: + NS_DECL_UMENUCHANGEOBSERVER + + uGlobalMenu (): uGlobalMenuObject(Menu), mPopupBound(PR_FALSE) { }; + + // Initialize the menu structure + nsresult Init (uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuPopupTracker *aTracker); + ~uGlobalMenu (); + + void OpenMenu (); + +protected: + void OnClose (PRBool propagate); + +private: + void InsertMenuObjectAt (uGlobalMenuObject *menuObj, + PRUint32 index); + void AppendMenuObject (uGlobalMenuObject *menuObj); + void RemoveMenuObjectAt (PRUint32 index); + nsresult ConstructDbusMenuItem (); + void Rebuild (); + nsresult Build (); + void GetMenuPopupFromMenu (nsIContent **aResult); + static PRBool MenuOpenCallback (DbusmenuMenuitem *menu, + void *data); + void OnOpen (); + void Activate (); + void Deactivate (); + + nsCOMPtr mPopupContent; + nsCOMPtr mCommandContent; + nsTArray< nsAutoPtr > mMenuObjects; + PRUint32 mOpenHandlerID; + DbusmenuMenuitem *mPlaceHolder; + uGlobalMenuPopupTracker *mTracker; + PRBool mPopupBound; +}; + +#endif --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuBar.h +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuBar.h @@ -0,0 +1,156 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUBAR_H +#define _U_GLOBALMENUBAR_H + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "uMenuChangeObserver.h" +#include "uGlobalMenuObject.h" +#include "uGlobalMenuPopupTracker.h" + +class nsIObserver; +class nsIWidget; +class nsIDOMEvent; +class uGlobalMenuService; +class uGlobalMenu; +class uGlobalMenuBar; +class nsIDOMKeyEvent; + +class uGlobalMenuBarListener: public nsIDOMKeyListener, + public nsIDOMFocusListener +{ +public: + NS_DECL_ISUPPORTS + + NS_IMETHOD KeyPress (nsIDOMEvent *aKeyEvent); + NS_IMETHOD KeyUp (nsIDOMEvent *aKeyEvent) { return NS_OK; } + NS_IMETHOD KeyDown (nsIDOMEvent *aKeyEvent) { return NS_OK; } + + NS_IMETHOD Focus (nsIDOMEvent *aEvent); + NS_IMETHOD Blur (nsIDOMEvent *aEvent) { return NS_OK; } + NS_IMETHOD HandleEvent (nsIDOMEvent *aEvent) { return NS_OK; } + + uGlobalMenuBarListener (uGlobalMenuBar *aMenuBar): + mMenuBar(aMenuBar) { }; + ~uGlobalMenuBarListener () { }; + +private: + uGlobalMenuBar *mMenuBar; +}; + +class uGlobalMenuBar: public uGlobalMenuObject, + public uMenuChangeObserver, + public uGlobalMenuPopupTracker +{ + friend class uGlobalMenuBarListener; +public: + NS_DECL_UMENUCHANGEOBSERVER + + + uGlobalMenuBar (): uGlobalMenuObject(MenuBar), + uGlobalMenuPopupTracker(), + mServer(nsnull), + mTopLevel(nsnull) { }; + ~uGlobalMenuBar (); + + // Initialize the menu structure + nsresult Init (nsIWidget *aWindow, + nsIContent *aMenuBar); + + // Return the native ID of the window + PRUint32 GetWindowID (); + + // Returns the path of the menubar on the session bus + const char* GetMenuPath (); + + // Checks if the menubar shares the same top level window as the + // specified nsIWidget + PRBool WidgetHasSameToplevelWindow (nsIWidget *aWidget); + + void ChildPopupOpen (uGlobalMenu *aMenu); + void ChildPopupClosed (uGlobalMenu *aMenu); + + // Called from the menu service. Used to hide the DOM element for the menubar + void SetXULMenuBarHidden (PRBool hidden); + +protected: + void Focus (); + nsresult KeyPress (nsIDOMEvent *aKeyEvent); +private: + + GtkWidget* WidgetToGTKWindow (nsIWidget *aWidget); + nsresult Build (); + PRUint32 GetModifiersFromEvent (nsIDOMKeyEvent *aKeyEvent); + + void RemoveMenuObjectAt (PRUint32 index); + void InsertMenuObjectAt (uGlobalMenuObject *menu, + PRUint32 index); + void AppendMenuObject (uGlobalMenuObject *menu); + PRBool ShouldParentStayVisible (nsIContent *aContent); + PRBool IsParentOfMenuBar (nsIContent *aContent); + + DbusmenuServer *mServer; + GtkWidget *mTopLevel; + nsCString mPath; + + nsCOMPtr mDOMWinTarget; + nsCOMPtr mHiddenElement; + nsCOMPtr mDocTarget; + PRBool mRestoreHidden; + PRBool mXULMenuHidden; + nsRefPtr mEventListener; + PRInt32 mAccessKey; + PRUint32 mAccessKeyMask; + + // Should probably have a container class and subclass that + nsTArray< nsAutoPtr > mMenuObjects; +}; + +#endif --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuBar.cpp +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuBar.cpp @@ -0,0 +1,650 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "uGlobalMenuBar.h" +#include "uGlobalMenu.h" +#include "uIGlobalMenuService.h" +#include "uWidgetAtoms.h" + +#define MODIFIER_SHIFT 1 +#define MODIFIER_CONTROL 2 +#define MODIFIER_ALT 4 +#define MODIFIER_META 8 + +NS_IMPL_ADDREF(uGlobalMenuBarListener) +NS_IMPL_RELEASE(uGlobalMenuBarListener) +NS_INTERFACE_MAP_BEGIN(uGlobalMenuBarListener) + NS_INTERFACE_MAP_ENTRY(nsIDOMKeyListener) + NS_INTERFACE_MAP_ENTRY(nsIDOMFocusListener) + NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIDOMEventListener,nsIDOMKeyListener) +NS_INTERFACE_MAP_END + +NS_IMETHODIMP +uGlobalMenuBarListener::KeyPress(nsIDOMEvent *aKeyEvent) +{ + return mMenuBar->KeyPress(aKeyEvent); +} + +NS_IMETHODIMP +uGlobalMenuBarListener::Focus(nsIDOMEvent *aEvent) +{ + if(mMenuBar) { + mMenuBar->Focus(); + } + return NS_OK; +} + +GtkWidget* +uGlobalMenuBar::WidgetToGTKWindow(nsIWidget *aWidget) +{ + // Get the main GDK drawing window from our nsIWidget + GdkWindow *window = static_cast(aWidget->GetNativeData(NS_NATIVE_WINDOW)); + if(!window) + return nsnull; + + // Get the widget for the main drawing window, which should be a MozContainer + gpointer user_data = nsnull; + gdk_window_get_user_data(window, &user_data); + if(!user_data || !GTK_IS_CONTAINER(user_data)) + return nsnull; + + return gtk_widget_get_toplevel(GTK_WIDGET(user_data)); +} + +void +uGlobalMenuBar::AppendMenuObject(uGlobalMenuObject *menu) +{ + dbusmenu_menuitem_child_append(mDbusMenuItem, + menu->GetDbusMenuItem()); + + mMenuObjects.AppendElement(menu); +} + +void +uGlobalMenuBar::InsertMenuObjectAt(uGlobalMenuObject *menu, + PRUint32 index) +{ + dbusmenu_menuitem_child_add_position(mDbusMenuItem, + menu->GetDbusMenuItem(), + index); + + mMenuObjects.InsertElementAt(index, menu); +} + +void +uGlobalMenuBar::RemoveMenuObjectAt(PRUint32 index) +{ + dbusmenu_menuitem_child_delete(mDbusMenuItem, + mMenuObjects[index]->GetDbusMenuItem()); + + mMenuObjects.RemoveElementAt(index); +} + +nsresult +uGlobalMenuBar::Build() +{ + PRUint32 count = mContent->GetChildCount(); + + for(PRUint32 i = 0; i < count; i++) { + nsIContent *menuContent = mContent->GetChildAt(i); + if(menuContent && menuContent->Tag() == uWidgetAtoms::menu && +#ifdef MOZILLA_1_9_2_BRANCH + menuContent->GetNameSpaceID() == kNameSpaceID_XUL) { +#else + menuContent->IsXUL()) { +#endif + uGlobalMenu *menu = new uGlobalMenu(); + if(menu) { + nsresult rv = menu->Init(static_cast(this), + mListener, + menuContent, + static_cast(this)); + AppendMenuObject(menu); + NS_ENSURE_SUCCESS(rv, rv); + } else { + return NS_ERROR_OUT_OF_MEMORY; + } + } + } + return NS_OK; +} + +uGlobalMenuBar::~uGlobalMenuBar() +{ + mListener->UnregisterForAllChanges(this); + mListener->UnregisterForContentChanges(mContent); + + SetXULMenuBarHidden(PR_FALSE); + + mDOMWinTarget->RemoveEventListener(NS_LITERAL_STRING("focus"), + (nsIDOMFocusListener *)mEventListener, + PR_TRUE); + + mDocTarget->RemoveEventListener(NS_LITERAL_STRING("keypress"), + (nsIDOMKeyListener *)mEventListener, + PR_FALSE); + + mListener->Destroy(); + + if(mTopLevel) + g_object_unref(mTopLevel); + + if(mDbusMenuItem) + g_object_unref(mDbusMenuItem); + + if(mServer) + g_object_unref(mServer); +} + +nsresult +uGlobalMenuBar::Init(nsIWidget *aWindow, + nsIContent *aMenuBar) +{ + NS_ENSURE_ARG(aWindow); + NS_ENSURE_ARG(aMenuBar); + + mContent = aMenuBar; + + mTopLevel = WidgetToGTKWindow(aWindow); + if(!GTK_IS_WINDOW(mTopLevel)) + return NS_ERROR_FAILURE; + + g_object_ref(mTopLevel); + + mPath = NS_LITERAL_CSTRING("/com/canonical/menu/"); + char xid[10]; + sprintf(xid, "%X", (PRUint32) GDK_WINDOW_XID(gtk_widget_get_window(mTopLevel))); + mPath.Append(xid); + + mServer = dbusmenu_server_new(mPath.get()); + if(!mServer) + return NS_ERROR_OUT_OF_MEMORY; + + mDbusMenuItem = dbusmenu_menuitem_new(); + if(!mDbusMenuItem) + return NS_ERROR_OUT_OF_MEMORY; + + dbusmenu_server_set_root(mServer, mDbusMenuItem); + + mListener = new uGlobalMenuDocListener(); + if(!mListener) + return NS_ERROR_OUT_OF_MEMORY; + + nsresult rv = mListener->Init(mContent); + NS_ENSURE_SUCCESS(rv, rv); + + mListener->RegisterForContentChanges(mContent, this); + + rv = Build(); + NS_ENSURE_SUCCESS(rv, rv); + + // Find the top-level DOM window from our nsIWidget, so we + // can register the menubar as a focus event listener, in order + // for it to cancel menus when it the window gets focus + void *clientData; + aWindow->GetClientData(clientData); + nsISupports *data = static_cast(clientData); + nsCOMPtr xulWindow = do_QueryInterface(data); + NS_ENSURE_TRUE(xulWindow, NS_ERROR_FAILURE); + + nsCOMPtr docShell; + xulWindow->GetDocShell(getter_AddRefs(docShell)); + NS_ENSURE_TRUE(docShell, NS_ERROR_FAILURE); + + nsCOMPtr domWindow = do_GetInterface(docShell); + mDOMWinTarget = do_QueryInterface(domWindow); + + mEventListener = new uGlobalMenuBarListener(this); + NS_ENSURE_TRUE(mEventListener, NS_ERROR_OUT_OF_MEMORY); + + mDOMWinTarget->AddEventListener(NS_LITERAL_STRING("focus"), + (nsIDOMFocusListener *)mEventListener, + PR_TRUE); + + mDocTarget = do_QueryInterface(mContent->GetDocument()); + + mDocTarget->AddEventListener(NS_LITERAL_STRING("keypress"), + (nsIDOMKeyListener *)mEventListener, + PR_FALSE); + + nsCOMPtr prefs = do_GetService(NS_PREFSERVICE_CONTRACTID); + NS_ENSURE_TRUE(prefs, NS_ERROR_FAILURE); + + prefs->GetIntPref("ui.key.menuAccessKey", &mAccessKey); + if (mAccessKey == nsIDOMKeyEvent::DOM_VK_SHIFT) { + mAccessKeyMask = MODIFIER_SHIFT; + } else if (mAccessKey == nsIDOMKeyEvent::DOM_VK_CONTROL) { + mAccessKeyMask = MODIFIER_CONTROL; + } else if (mAccessKey == nsIDOMKeyEvent::DOM_VK_ALT) { + mAccessKeyMask = MODIFIER_ALT; + } else if (mAccessKey == nsIDOMKeyEvent::DOM_VK_META) { + mAccessKeyMask = MODIFIER_META; + } else { + mAccessKeyMask = MODIFIER_ALT; + mAccessKey = nsIDOMKeyEvent::DOM_VK_ALT; + } + + mListener->RegisterForAllChanges(this); + + nsCOMPtr service = + do_GetService("@canonical.com/globalmenu-service;1"); + NS_ENSURE_TRUE(service, NS_ERROR_FAILURE); + + service->RegisterGlobalMenuBar(this); + return NS_OK; +} + +void +uGlobalMenuBar::Focus() +{ + if(mOpenMenu) { + mOpenMenu->OnClose(PR_TRUE); + } +} + +PRUint32 +uGlobalMenuBar::GetModifiersFromEvent(nsIDOMKeyEvent *aKeyEvent) +{ + PRUint32 modifiers = 0; + PRBool modifier; + + aKeyEvent->GetAltKey(&modifier); + if (modifier) { + modifiers |= MODIFIER_ALT; + } + + aKeyEvent->GetShiftKey(&modifier); + if (modifier) { + modifiers |= MODIFIER_SHIFT; + } + + aKeyEvent->GetCtrlKey(&modifier); + if (modifier) { + modifiers |= MODIFIER_CONTROL; + } + + aKeyEvent->GetMetaKey(&modifier); + if (modifier) { + modifiers |= MODIFIER_META; + } + + return modifiers; +} + +nsresult +uGlobalMenuBar::KeyPress(nsIDOMEvent *aKeyEvent) +{ + nsCOMPtr nsEvent = do_QueryInterface(aKeyEvent); + if (nsEvent) { + PRBool handled, trusted; + nsEvent->GetPreventDefault(&handled); + nsEvent->GetIsTrusted(&trusted); + + if (handled || !trusted) { + return NS_OK; + } + } + + nsCOMPtr keyEvent = do_QueryInterface(aKeyEvent); + uGlobalMenuObject *found = nsnull; + if (keyEvent) { + PRUint32 modifiers = GetModifiersFromEvent(keyEvent); + if ((modifiers & mAccessKeyMask) && ((modifiers & ~mAccessKeyMask) == 0)) { + // The menu access modifier is pressed + PRUint32 charCode; + keyEvent->GetCharCode(&charCode); + if (charCode != 0) { + // XXX: This bit is all really hacky, but we don't have access to + // ToLowerCase from nsUnicharUtils.h, which can convert the + // PRUnichar. What we have to do is convert from UTF16 to UTF8, + // convert to lower case using ToLowerCase from nsStringAPI.h, + // then convert back again and get the new PRUnichar, which + // we do the comparison with when checking each menus accesskey + PRUnichar ch = PRUnichar(charCode); + nsAutoString aCharCode; + nsCAutoString cCharCode, lowerCaseCode; + aCharCode = ch; + CopyUTF16toUTF8(aCharCode, cCharCode); + ToLowerCase(cCharCode, lowerCaseCode); + CopyUTF8toUTF16(lowerCaseCode, aCharCode); + ch = *aCharCode.BeginWriting(); + PRUint32 count = mMenuObjects.Length(); + PRUint32 i; + for (i = 0; i < count; i++) { + nsCOMPtr content; + mMenuObjects[i]->GetContent(getter_AddRefs(content)); + if (content) { + nsAutoString aAccesskey; + nsCAutoString cAccesskey, lowerCaseAccessKey; + content->GetAttr(kNameSpaceID_None, uWidgetAtoms::accesskey, + aAccesskey); + CopyUTF16toUTF8(aAccesskey, cAccesskey); + ToLowerCase(cAccesskey, lowerCaseAccessKey); + CopyUTF8toUTF16(lowerCaseAccessKey, aAccesskey); + PRUnichar *key = aAccesskey.BeginWriting(); + if (*key == ch) { + found = mMenuObjects[i]; + break; + } + } + } + } + } + } + + if (found) { + uGlobalMenu *menu = static_cast(found); + menu->OpenMenu(); + aKeyEvent->StopPropagation(); + aKeyEvent->PreventDefault(); + } + + return NS_OK; +} + +PRBool +uGlobalMenuBar::IsParentOfMenuBar(nsIContent *aContent) +{ + nsIContent *tmp = mContent->GetParent(); + + while (tmp) { + if (tmp == aContent) { + return PR_TRUE; + } + + tmp = tmp->GetParent(); + } + + return PR_FALSE; +} + +PRBool +uGlobalMenuBar::ShouldParentStayVisible(nsIContent *aContent) +{ + static nsIAtom *blacklist[] = + { uWidgetAtoms::toolbarspring, nsnull }; + + nsIContent *parent = aContent->GetParent(); + if (!parent) { + return PR_TRUE; + } + + PRUint32 count = parent->GetChildCount(); + + if (count <= 1) { + // It's just us + return PR_FALSE; + } + + for (PRUint32 i = 0 ; i < count ; i++) { + nsIContent *child = parent->GetChildAt(i); + if (child == aContent) { + continue; + } + + PRBool found = PR_FALSE; + for (PRUint32 j = 0 ; blacklist[j] != nsnull ; j++) { + if (child->Tag() == blacklist[j]) { + found = PR_TRUE; + break; + } + } + + if (!found) { + return PR_TRUE; + } + } + + return PR_FALSE; +} + +void +uGlobalMenuBar::SetXULMenuBarHidden(PRBool hidden) +{ + mXULMenuHidden = hidden; + + if(hidden) { + if(mHiddenElement) { + mHiddenElement->SetAttr(kNameSpaceID_None, uWidgetAtoms::hidden, + mRestoreHidden ? NS_LITERAL_STRING("true") : + NS_LITERAL_STRING("false"), PR_TRUE); + } + nsIContent *tmp = mContent; + + // Walk up the DOM tree until we find a node with siblings + while(tmp) { + if (ShouldParentStayVisible(tmp)) { + break; + } + + tmp = tmp->GetParent(); + } + + mHiddenElement = tmp; + mRestoreHidden = mHiddenElement->AttrValueIs(kNameSpaceID_None, + uWidgetAtoms::hidden, + uWidgetAtoms::_true, + eCaseMatters); + + mHiddenElement->SetAttr(kNameSpaceID_None, uWidgetAtoms::hidden, + NS_LITERAL_STRING("true"), PR_TRUE); + } else if(mHiddenElement) { + mHiddenElement->SetAttr(kNameSpaceID_None, uWidgetAtoms::hidden, + mRestoreHidden ? NS_LITERAL_STRING("true") : + NS_LITERAL_STRING("false"), PR_TRUE); + mHiddenElement = nsnull; + } +} + +void +uGlobalMenuBar::ChildPopupOpen(uGlobalMenu *aMenu) +{ + if(!aMenu) { + return; + } + + if(!mOpenMenu) { + mOpenMenu = aMenu; + static_cast(mOpenMenu)->Activate(); + return; + } + + if(aMenu == mOpenMenu) { + return; + } + + uGlobalMenuObject *tmp = aMenu->GetParent(); + + while(tmp->GetType() == Menu) { + if(tmp == mOpenMenu) { + // A child of the currently open menu just opened + static_cast(mOpenMenu)->Deactivate(); + static_cast(aMenu)->Activate(); + mOpenMenu = aMenu; + return; + } + tmp = tmp->GetParent(); + } + + // If we got here, then the newly opened menu isn't + // a child of the currently opened menu. If that's the + // case, we need to find a common ancestor, and close all + // of the menus up to there + tmp = aMenu->GetParent(); + uGlobalMenuObject *common = nsnull; + while(tmp->GetType() == Menu && !common) { + uGlobalMenuObject *tmp2 = mOpenMenu->GetParent(); + while(tmp2->GetType() == Menu) { + if(tmp2 == tmp) { + common = tmp; + break; + } + tmp2 = tmp2->GetParent(); + } + tmp = tmp->GetParent(); + } + + tmp = static_cast(mOpenMenu); + // From now on, mOpenMenu will change as the menus we close call ChildPopupClosed, + // so we can't use it again until we know we've closed all the menus we need to + while(tmp->GetType() == Menu && tmp != common) { + static_cast(tmp)->OnClose(PR_FALSE); + tmp = tmp->GetParent(); + } + + static_cast(aMenu)->Activate(); + mOpenMenu = aMenu; +} + +void +uGlobalMenuBar::ChildPopupClosed(uGlobalMenu *aMenu) +{ + if(!aMenu) { + return; + } + + // Check if this menu is in our hierarchy of open menus + uGlobalMenuObject *tmp = static_cast(aMenu); + uGlobalMenuObject *found = nsnull; + while(tmp->GetType() == Menu) { + if(tmp == static_cast(mOpenMenu)) { + found = tmp; + break; + } + tmp = tmp->GetParent(); + } + + if(found) { + mOpenMenu = (found->GetParent())->GetType() == Menu ? static_cast(found->GetParent()) : nsnull; + } +} + +PRUint32 +uGlobalMenuBar::GetWindowID() +{ + return (PRUint32) GDK_WINDOW_XID(gtk_widget_get_window(mTopLevel)); +} + +const char* +uGlobalMenuBar::GetMenuPath() +{ + return mPath.get(); +} + +PRBool +uGlobalMenuBar::WidgetHasSameToplevelWindow(nsIWidget *aWidget) +{ + GtkWidget *topLevel = WidgetToGTKWindow(aWidget); + return GDK_WINDOW_XID(gtk_widget_get_window(mTopLevel)) == GDK_WINDOW_XID(gtk_widget_get_window(topLevel)); +} + +void +uGlobalMenuBar::ObserveAttributeChanged(nsIDocument *aDocument, + nsIContent *aContent, + nsIAtom *aAttribute) +{ + +} + +void +uGlobalMenuBar::ObserveContentRemoved(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + if (IsParentOfMenuBar(aContainer)) { + SetXULMenuBarHidden(mXULMenuHidden); + return; + } + + if (aContainer != mContent) { + NS_ASSERTION(0, "Received an event that wasn't meant for us!"); + return; + } + + RemoveMenuObjectAt(aIndexInContainer); +} + +void +uGlobalMenuBar::ObserveContentInserted(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + if (IsParentOfMenuBar(aContainer)) { + SetXULMenuBarHidden(mXULMenuHidden); + return; + } + + if (aContainer != mContent) { + NS_ASSERTION(0, "Received an event that wasn't meant for us!"); + return; + } + + // FIXME: What to do if this isn't a menu? +#ifdef MOZILLA_1_9_2_BRANCH + if(aChild->Tag() == uWidgetAtoms::menu && aChild->GetNameSpaceID() == kNameSpaceID_XUL) { +#else + if(aChild->Tag() == uWidgetAtoms::menu && aChild->IsXUL()) { +#endif + uGlobalMenu *menu = new uGlobalMenu(); + // FIXME: Handle OOM and errors returned from uGlobalMenu::Init + if(menu) { + menu->Init(this, mListener, aChild, static_cast(this)); + InsertMenuObjectAt(static_cast(menu), aIndexInContainer); + } + } +} --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuSeparator.cpp +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuSeparator.cpp @@ -0,0 +1,120 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include + +#include +#include + +#include "uGlobalMenuSeparator.h" +#include "uWidgetAtoms.h" + + +nsresult +uGlobalMenuSeparator::ConstructDbusMenuItem() +{ + mDbusMenuItem = dbusmenu_menuitem_new(); + if(!mDbusMenuItem) + return NS_ERROR_OUT_OF_MEMORY; + + dbusmenu_menuitem_property_set(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_TYPE, + "separator"); + + SyncVisibilityFromContent(); + + return NS_OK; +} + +uGlobalMenuSeparator::~uGlobalMenuSeparator() +{ + mListener->UnregisterForContentChanges(mContent); + + if(mDbusMenuItem) + g_object_unref(mDbusMenuItem); +} + +nsresult +uGlobalMenuSeparator::Init(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent) +{ + NS_ENSURE_ARG(aParent); + NS_ENSURE_ARG(aListener); + NS_ENSURE_ARG(aContent); + + mParent = aParent; + mListener = aListener; + mContent = aContent; + + nsresult rv = ConstructDbusMenuItem(); + NS_ENSURE_SUCCESS(rv, rv); + + mListener->RegisterForContentChanges(mContent, this); + + return NS_OK; +} + +void +uGlobalMenuSeparator::ObserveAttributeChanged(nsIDocument *aDocument, + nsIContent *aContent, + nsIAtom *aAttribute) +{ + if(aAttribute == uWidgetAtoms::hidden) + SyncVisibilityFromContent(); +} + +void +uGlobalMenuSeparator::ObserveContentRemoved(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + +} + +void +uGlobalMenuSeparator::ObserveContentInserted(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + +} --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuLoader.cpp +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuLoader.cpp @@ -0,0 +1,323 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef MOZILLA_1_9_2_BRANCH +# include +#endif + +#include "uIGlobalMenuService.h" +#include "uIGlobalMenuLoader.h" +#include "uGlobalMenuLoader.h" + +// XXX: The sole purpose of this class is to listen for new nsIXULWindows +// and do the task that xpfe/appshell/src/nsWebShellWindow.cpp +// would be doing if this extension were part of Mozilla core. The reason +// it is an entirely separate entity is so that the menubar service +// implementation is as close as possible to how it might look inside Mozilla + +void +uGlobalMenuLoader::RegisterMenuForWindow(nsIXULWindow *aWindow) +{ + nsCOMPtr baseWindow = do_QueryInterface(aWindow); + if(!baseWindow) + return; + + nsCOMPtr mainWidget; + baseWindow->GetMainWidget(getter_AddRefs(mainWidget)); + if(!mainWidget) + return; + + nsCOMPtr docShell; + aWindow->GetDocShell(getter_AddRefs(docShell)); + if(!docShell) + return; + + nsCOMPtr progress; + progress = do_GetInterface(docShell); + if(progress) { + // If we've been called off a window open event from the window mediator, + // then the document probably hasn't loaded yet. To fix this, we set up a progress + // listener on the docshell, so we can do the actual menu load once the + // document has finished loading + nsresult rv = progress->AddProgressListener(this, nsIWebProgress::NOTIFY_STATE_NETWORK); + } + + PRBool res = RegisterMenu(mainWidget, docShell); + + if(res && progress) { + progress->RemoveProgressListener(this); + } +} + +PRBool +uGlobalMenuLoader::RegisterMenu(nsIWidget *aWindow, + nsIDocShell *aDocShell) +{ + nsCOMPtr cv; + aDocShell->GetContentViewer(getter_AddRefs(cv)); + if(!cv) + return PR_FALSE; + +#ifdef MOZILLA_1_9_2_BRANCH + nsCOMPtr docv(do_QueryInterface(cv)); + if (!docv) + return PR_FALSE; + + nsCOMPtr doc; + docv->GetDocument(getter_AddRefs(doc)); +#else + nsIDocument *doc = cv->GetDocument(); +#endif + nsCOMPtr domDoc = do_QueryInterface(doc); + if(!domDoc) + return PR_FALSE; + + nsCOMPtr elements; + domDoc->GetElementsByTagNameNS(NS_LITERAL_STRING("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"), + NS_LITERAL_STRING("menubar"), + getter_AddRefs(elements)); + + if(elements) { + nsCOMPtr menubar; + elements->Item(0, getter_AddRefs(menubar)); + if(menubar) { + nsCOMPtr menubarContent = do_QueryInterface(menubar); + // XXX: Should we do anything with errors here? + mService->CreateGlobalMenuBar(aWindow, menubarContent); + } + } + return PR_TRUE; +} + +void +uGlobalMenuLoader::RegisterAllMenus() +{ + nsCOMPtr wm = + do_GetService("@mozilla.org/appshell/window-mediator;1"); + if(!wm) { + return; + } + + nsCOMPtr iter; + wm->GetXULWindowEnumerator(nsnull, getter_AddRefs(iter)); + if(!iter) { + return; + } + + PRBool hasMore; + iter->HasMoreElements(&hasMore); + + while(hasMore) { + nsCOMPtr elem; + iter->GetNext(getter_AddRefs(elem)); + iter->HasMoreElements(&hasMore); + if(!elem) + continue; + + nsCOMPtr xulWindow = do_QueryInterface(elem); + if(!xulWindow) + continue; + + RegisterMenuForWindow(xulWindow); + } +} + +NS_IMPL_ISUPPORTS4(uGlobalMenuLoader, nsIObserver, uIGlobalMenuLoader, nsIWebProgressListener, nsISupportsWeakReference) + +nsresult +uGlobalMenuLoader::Init() +{ + mService = do_GetService("@canonical.com/globalmenu-service;1"); + NS_ENSURE_TRUE(mService, NS_ERROR_OUT_OF_MEMORY); + + mService->RegisterNotification(this); + + nsCOMPtr wm = + do_GetService("@mozilla.org/appshell/window-mediator;1"); + NS_ENSURE_TRUE(wm, NS_ERROR_OUT_OF_MEMORY); + + wm->AddListener(this); + + PRBool online; + mService->GetOnline(&online); + if(online) { + RegisterAllMenus(); + } + + return NS_OK; +} + +uGlobalMenuLoader::~uGlobalMenuLoader() +{ + mService->UnregisterNotification(this); + + nsCOMPtr wm = + do_GetService("@mozilla.org/appshell/window-mediator;1"); + + if(wm) { + wm->RemoveListener(this); + } +} + +NS_IMETHODIMP +uGlobalMenuLoader::Observe(nsISupports *aSubject, + const char *aTopic, + const PRUnichar *aData) +{ + if(strcmp(aTopic, "menuservice-online") == 0) { + RegisterAllMenus(); + } + + return NS_OK; +} + +/* void onWindowTitleChange (in nsIXULWindow window, in wstring newTitle); */ +NS_IMETHODIMP +uGlobalMenuLoader::OnWindowTitleChange(nsIXULWindow *window, + const PRUnichar *newTitle) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +/* void onOpenWindow (in nsIXULWindow window); */ +NS_IMETHODIMP +uGlobalMenuLoader::OnOpenWindow(nsIXULWindow *window) +{ + RegisterMenuForWindow(window); + return NS_OK; +} + +/* void onCloseWindow (in nsIXULWindow window); */ +NS_IMETHODIMP +uGlobalMenuLoader::OnCloseWindow(nsIXULWindow *window) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuLoader::OnStateChange(nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + PRUint32 aStateFlags, + nsresult aStatus) +{ + // Borrowed from nsWebShellWindow.cpp + + // If the notification is not about a document finishing, then just + // ignore it... + if (!(aStateFlags & nsIWebProgressListener::STATE_STOP) || + !(aStateFlags & nsIWebProgressListener::STATE_IS_NETWORK)) { + return NS_OK; + } + + // If this document notification is for a frame then ignore it... + nsCOMPtr eventWin; + aWebProgress->GetDOMWindow(getter_AddRefs(eventWin)); + nsCOMPtr eventPWin(do_QueryInterface(eventWin)); + if (eventPWin) { + nsPIDOMWindow *rootPWin = eventPWin->GetPrivateRoot(); + if (eventPWin != rootPWin) + return NS_OK; + } + + nsCOMPtr baseWindow = do_GetInterface(aWebProgress); + if(baseWindow) { + nsCOMPtr parentWidget; + baseWindow->GetParentWidget(getter_AddRefs(parentWidget)); + + nsCOMPtr docShell = do_GetInterface(aWebProgress); + if(docShell && parentWidget) { + PRBool res = RegisterMenu(parentWidget, docShell); + if(res) { + aWebProgress->RemoveProgressListener(this); + } + } + } + + return NS_OK; +} + +NS_IMETHODIMP +uGlobalMenuLoader::OnProgressChange(nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + PRInt32 aCurSelfProgress, + PRInt32 aMaxSelfProgress, + PRInt32 aCurTotalProgress, + PRInt32 aMaxTotalProgress) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuLoader::OnLocationChange(nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + nsIURI *aLocation) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuLoader::OnStatusChange(nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + nsresult aStatus, + const PRUnichar *aMessage) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuLoader::OnSecurityChange(nsIWebProgress *aWebProgress, + nsIRequest *aRequest, + PRUint32 aState) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uWidgetAtomList.h +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uWidgetAtomList.h @@ -0,0 +1,63 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1999 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Original Author: Mike Pinkerton (pinkerton@netscape.com) + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +WIDGET_ATOM(accesskey, "accesskey") +WIDGET_ATOM(autocheck, "autocheck") +WIDGET_ATOM(checkbox, "checkbox") +WIDGET_ATOM(checked, "checked") +WIDGET_ATOM(command, "command") +WIDGET_ATOM(disabled, "disabled") +WIDGET_ATOM(_false, "false") +WIDGET_ATOM(hidden, "hidden") +WIDGET_ATOM(id, "id") +WIDGET_ATOM(image, "image") +WIDGET_ATOM(key, "key") +WIDGET_ATOM(keycode, "keycode") +WIDGET_ATOM(label, "label") +WIDGET_ATOM(menu, "menu") +WIDGET_ATOM(menuactive, "_moz-menuactive") +WIDGET_ATOM(menuitem, "menuitem") +WIDGET_ATOM(menupopup, "menupopup") +WIDGET_ATOM(menuseparator, "menuseparator") +WIDGET_ATOM(modifiers, "modifiers") +WIDGET_ATOM(name, "name") +WIDGET_ATOM(open, "open") +WIDGET_ATOM(radio, "radio") +WIDGET_ATOM(toolbarspring, "toolbarspring") +WIDGET_ATOM(_true, "true") +WIDGET_ATOM(type, "type") --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuService.cpp +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuService.cpp @@ -0,0 +1,484 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "uGlobalMenuService.h" +#include "uWidgetAtoms.h" + +class RegisterWindowCbData +{ +public: + RegisterWindowCbData(uGlobalMenuBar *aMenu, + uGlobalMenuService *aService, + uGlobalMenuRequestAutoCanceller *aCanceller): + mMenu(aMenu), mService(aService), + mCanceller(aCanceller) + { + mDbusProxy = mService->GetDbusProxy(); + if (mDbusProxy) { + g_object_ref(mDbusProxy); + } + + mCancellable = mCanceller->GetCancellable(); + if (mCancellable) { + g_object_ref(mCancellable); + mID = g_cancellable_connect(mCancellable, G_CALLBACK(Cancelled), this, nsnull); + } + } + + static void Cancelled(GCancellable *aCancellable, + gpointer userdata) + { + RegisterWindowCbData *cbdata = + static_cast(userdata); + + // If the request was cancelled, then invalidate pointers to objects + // that might not exist anymore + + cbdata->mMenu = nsnull; + cbdata->mService = nsnull; + cbdata->mCanceller = nsnull; + } + + GDBusProxy* GetDbusProxy() { return mDbusProxy; } + uGlobalMenuBar* GetMenuBar() { return mMenu; } + uGlobalMenuService *GetService() { return mService; } + uGlobalMenuRequestAutoCanceller *GetCanceller() { return mCanceller; } + ~RegisterWindowCbData() + { + if (mDbusProxy) { + g_object_unref(mDbusProxy); + } + + if (mCancellable) { + g_cancellable_disconnect(mCancellable, mID); + g_object_unref(mCancellable); + } + } + +private: + uGlobalMenuBar *mMenu; + uGlobalMenuService *mService; + GDBusProxy *mDbusProxy; + GCancellable *mCancellable; + uGlobalMenuRequestAutoCanceller *mCanceller; + PRUint32 mID; +}; + +NS_IMPL_ISUPPORTS2(uGlobalMenuService, uIGlobalMenuService, nsIObserver) + +/*static*/ void +uGlobalMenuService::ProxyCreatedCallback(GObject *object, + GAsyncResult *res, + gpointer userdata) +{ + uGlobalMenuService *self = static_cast(userdata); + + GError *error = NULL; + GDBusProxy *proxy = g_dbus_proxy_new_for_bus_finish(res, &error); + + if (error && g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { + // We should only get cancelled if the service was destroyed. + // In this case, it is no longer safe to proceed + return; + } + + self->mCancellable = nsnull; + + self->mDbusProxy = proxy; + + if (!proxy) { + NS_WARNING("Failed to create proxy for AppMenu registrar"); + self->SetOnline(PR_FALSE); + return; + } + + self->mNOCHandlerID = g_signal_connect(self->mDbusProxy, "notify::g-name-owner", + G_CALLBACK(NameOwnerChangedCallback), + userdata); + + char *owner = g_dbus_proxy_get_name_owner(self->mDbusProxy); + self->SetOnline(owner ? PR_TRUE : PR_FALSE); + + if (error) { + g_error_free(error); + } + g_free(owner); +} + +/*static*/ void +uGlobalMenuService::NameOwnerChangedCallback(GObject *object, + GParamSpec *pspec, + gpointer userdata) +{ + uGlobalMenuService *self = static_cast(userdata); + + char *owner = g_dbus_proxy_get_name_owner(self->mDbusProxy); + self->SetOnline(owner ? PR_TRUE : PR_FALSE); + g_free(owner); +} + +/*static*/ void +uGlobalMenuService::RegisterWindowCallback(GObject *object, + GAsyncResult *res, + gpointer userdata) +{ + RegisterWindowCbData *data = + static_cast(userdata); + + uGlobalMenuService *service = data->GetService(); + uGlobalMenuBar *menu = data->GetMenuBar(); + GDBusProxy *proxy = data->GetDbusProxy(); + uGlobalMenuRequestAutoCanceller *canceller = data->GetCanceller(); + + GError *error = NULL; + // RegisterWindowCbData owns a reference to the proxy + GVariant *result = g_dbus_proxy_call_finish(proxy, res, &error); + if (result) { + g_variant_unref(result); + } + + if (error && g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { + // The call is cancelled if uGlobalMenuService goes away or the + // panel service goes offline. In either case, the menu has now + // been destroyed + delete data; + return; + } + + if (menu) { + // This check is probably bogus. menu should only be invalid if + // the request was cancelled, in which case, we should have + // returned already + menu->SetXULMenuBarHidden(error ? PR_FALSE : PR_TRUE); + } + + if (error) { + g_error_free(error); + } + + if (service && canceller) { + // This check might be bogus too, see above + PRUint32 length = service->mPendingMenus.Length(); + for (PRUint32 i = 0; i < length; i++) { + if (canceller == service->mPendingMenus[i]) { + service->mPendingMenus.RemoveElementAt(i); + break; + } + } + } + + delete data; +} + +void +uGlobalMenuService::DestroyMenus() +{ + PRUint32 count = mPendingMenus.Length(); + for (PRUint32 i = 0; i < count; i++) { + mPendingMenus.RemoveElementAt(0); + } + + count = mMenus.Length(); + for(PRUint32 j = 0; j < count; j++) { + mMenus.RemoveElementAt(0); + } +} + +void +uGlobalMenuService::DestroyMenuForWidget(nsIWidget *aWidget) +{ + for(PRUint32 i = 0; i < mMenus.Length(); i++) { + if(mMenus[i]->WidgetHasSameToplevelWindow(aWidget)) { + mMenus.RemoveElementAt(i); + return; + } + } +} + +void +uGlobalMenuService::SetOnline(PRBool aOnline) +{ + if(mOnline != aOnline) { + mOnline = aOnline; + nsCOMPtr os = + do_GetService("@mozilla.org/observer-service;1"); + if(os) { + os->NotifyObservers(nsnull, mOnline ? "menuservice-online" : "menuservice-offline", 0); + } + + if(!mOnline) { + DestroyMenus(); + } + } +} + +PRBool +uGlobalMenuService::WidgetHasGlobalMenu(nsIWidget *aWidget) +{ + for(PRUint32 i = 0; i < mMenus.Length(); i++) { + if(mMenus[i]->WidgetHasSameToplevelWindow(aWidget)) + return PR_TRUE; + } + return PR_FALSE; +} + +// Stolen shamelessly from widget/src/shared/WidgetUtils.cpp +// Why write my own implementation when one already exists? :) +already_AddRefed +uGlobalMenuService::DOMWindowToWidget(nsIDOMWindow *aDOMWindow) +{ + nsCOMPtr widget; + + nsCOMPtr window = do_QueryInterface(aDOMWindow); + if (window) { + nsCOMPtr baseWin(do_QueryInterface(window->GetDocShell())); + + while (!widget && baseWin) { + baseWin->GetParentWidget(getter_AddRefs(widget)); + if (!widget) { + nsCOMPtr docShellAsItem(do_QueryInterface(baseWin)); + if (!docShellAsItem) + return nsnull; + + nsCOMPtr parent; + docShellAsItem->GetParent(getter_AddRefs(parent)); + + window = do_GetInterface(parent); + if (!window) + return nsnull; + + baseWin = do_QueryInterface(window->GetDocShell()); + } + } + } + + return widget.forget(); +} + +nsresult +uGlobalMenuService::Init() +{ + nsresult rv; + rv = uWidgetAtoms::RegisterAtoms(); + NS_ENSURE_SUCCESS(rv, rv); + + mCancellable = uGlobalMenuRequestAutoCanceller::Create(); + + GDBusProxyFlags flags = static_cast( + G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | + G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS | + G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START); + + g_dbus_proxy_new_for_bus(G_BUS_TYPE_SESSION, + flags, + NULL, + "com.canonical.AppMenu.Registrar", + "/com/canonical/AppMenu/Registrar", + "com.canonical.AppMenu.Registrar", + mCancellable->GetCancellable(), + ProxyCreatedCallback, + this); + + nsCOMPtr os = + do_GetService("@mozilla.org/observer-service;1"); + NS_ENSURE_TRUE(os, NS_ERROR_OUT_OF_MEMORY); + + // Not sure of the best way to do this. On the Mac, the menu bars are owned + // by the nsCocoaWindow, and are destroyed in the windows destructor. We + // can't do this here, so we need a way of tracking windows as they are + // closed, and destroying the menus ourselves + rv = os->AddObserver(this, "domwindowclosed", PR_FALSE); + return rv; +} + +uGlobalMenuService::~uGlobalMenuService() +{ + if(mDbusProxy) { + g_signal_handler_disconnect(mDbusProxy, mNOCHandlerID); + g_object_unref(mDbusProxy); + } +} + +NS_IMETHODIMP +uGlobalMenuService::CreateGlobalMenuBar(nsIWidget *aParent, + nsIContent *aMenuBarNode) +{ + NS_ENSURE_ARG(aParent); + NS_ENSURE_ARG(aMenuBarNode); + + NS_ENSURE_TRUE(mOnline, NS_ERROR_FAILURE); + + // Sanity check to make sure we don't register more than one menu + // for each top-level window + if(WidgetHasGlobalMenu(aParent)) + return NS_ERROR_FAILURE; + + uGlobalMenuBar *menu = new uGlobalMenuBar(); + NS_ENSURE_TRUE(menu, NS_ERROR_OUT_OF_MEMORY); + + nsresult rv = menu->Init(aParent, aMenuBarNode); + if(NS_FAILED(rv)) { + delete menu; + return rv; + } + + mMenus.AppendElement(menu); + + return NS_OK; +} + +/* [noscript, notxpcom] void registerGlobalMenuBar (in uGlobalMenuBarPtr menuBar); */ +NS_IMETHODIMP_(void) +uGlobalMenuService::RegisterGlobalMenuBar(uGlobalMenuBar *aMenuBar) +{ + if(mOnline != PR_TRUE) + return; + + if(!aMenuBar) + return; + + PRUint32 xid = aMenuBar->GetWindowID(); + nsCAutoString path(aMenuBar->GetMenuPath()); + if(xid == 0 || path.IsEmpty()) + return; + + uGlobalMenuRequestAutoCanceller *canceller = + uGlobalMenuRequestAutoCanceller::Create(); + if (!canceller) { + return; + } + + RegisterWindowCbData *data = + new RegisterWindowCbData(aMenuBar, + this, + canceller); + if (!data) { + delete canceller; + return; + } + + mPendingMenus.AppendElement(canceller); + + g_dbus_proxy_call(mDbusProxy, + "RegisterWindow", + g_variant_new("(uo)", xid, path.get()), + G_DBUS_CALL_FLAGS_NONE, + -1, + canceller->GetCancellable(), + RegisterWindowCallback, + data); +} + +/* void registerNotification (in nsIObserver observer); */ +NS_IMETHODIMP +uGlobalMenuService::RegisterNotification(nsIObserver *aObserver) +{ + NS_ENSURE_ARG(aObserver); + + nsCOMPtr os = + do_GetService("@mozilla.org/observer-service;1"); + NS_ENSURE_TRUE(os, NS_ERROR_OUT_OF_MEMORY); + + nsresult rv; + rv = os->AddObserver(aObserver, "menuservice-online", PR_FALSE); + NS_ENSURE_SUCCESS(rv, rv); + + rv = os->AddObserver(aObserver, "menuservice-offline", PR_FALSE); + return rv; +} + +/* void unregisterNotification (in nsIObserver observer); */ +NS_IMETHODIMP +uGlobalMenuService::UnregisterNotification(nsIObserver *aObserver) +{ + NS_ENSURE_ARG(aObserver); + + nsCOMPtr os = + do_GetService("@mozilla.org/observer-service;1"); + NS_ENSURE_TRUE(os, NS_ERROR_OUT_OF_MEMORY); + + nsresult rv; + rv = os->RemoveObserver(aObserver, "menuservice-online"); + NS_ENSURE_SUCCESS(rv, rv); + + rv = os->RemoveObserver(aObserver, "menuservice-offline"); + return rv; +} + +/* readonly attribute boolean online; */ +NS_IMETHODIMP +uGlobalMenuService::GetOnline(PRBool *online) +{ + NS_ENSURE_ARG_POINTER(online); + *online = mOnline; + return NS_OK; +} + +NS_IMETHODIMP +uGlobalMenuService::Observe(nsISupports *aSubject, + const char *aTopic, + const PRUnichar *aData) +{ + if(strcmp(aTopic, "domwindowclosed") == 0) { + nsCOMPtr domWindow = do_QueryInterface(aSubject); + if(domWindow) { + nsCOMPtr widget = DOMWindowToWidget(domWindow); + if(widget) + DestroyMenuForWidget(widget); + } + } + + return NS_OK; +} --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuObject.cpp +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuObject.cpp @@ -0,0 +1,595 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "uGlobalMenuObject.h" +#include "uWidgetAtoms.h" + +typedef nsresult (nsIDOMRect::*GetRectSideMethod)(nsIDOMCSSPrimitiveValue**); + +NS_IMPL_ISUPPORTS2(uGlobalMenuIconLoader, imgIDecoderObserver, imgIContainerObserver) + +PRBool +uGlobalMenuIconLoader::ShouldShowIcon() +{ + // Ideally, we want to get the visibility of the XUL image in our menu item, + // but that is anonymous content which is only created when the frame is drawn + // (which obviously never happens here). + // As an alternative, we get the user setting for menus-have-icons from + // nsILookAndFeel. If menu icons are to be hidden, we hide everything except + // for menuitems with the menuitem-with-favicon class. This is basically + // how the visibility gets set anyway (see chrome://toolkit/content/xul.css), + // which should work in most cases. But, I guess a theme could override this, + // and then we ignore the users theme settings. Oh well...... + + nsresult rv; + + PRInt32 imagesInMenus = 0; + nsCOMPtr laf = + do_GetService("@mozilla.org/widget/lookandfeel;1"); + if (laf) { + rv = laf->GetMetric(nsILookAndFeel::eMetric_ImagesInMenus, + imagesInMenus); + if (NS_FAILED(rv)) { + imagesInMenus = 0; + } + } + + if (imagesInMenus) { + return PR_TRUE; + } + + nsCOMPtr element(do_QueryInterface(mContent)); + if (!element) { + return PR_FALSE; + } + + nsCOMPtr classes; + rv = element->GetClassList(getter_AddRefs(classes)); + if (NS_FAILED(rv) || !classes) { + return PR_FALSE; + } + + PRBool hasFavIcon; + rv = classes->Contains(NS_LITERAL_STRING("menuitem-with-favicon"), + &hasFavIcon); + if (NS_FAILED(rv)) { + return PR_FALSE; + } + + return hasFavIcon; +} + +void +uGlobalMenuIconLoader::LoadIcon() +{ + NS_DispatchToCurrentThread(this); +} + +static PRInt32 +GetDOMRectSide(nsIDOMRect* aRect, GetRectSideMethod aMethod) +{ + nsCOMPtr dimensionValue; + (aRect->*aMethod)(getter_AddRefs(dimensionValue)); + if (!dimensionValue) + return -1; + + PRUint16 primitiveType; + nsresult rv = dimensionValue->GetPrimitiveType(&primitiveType); + if (NS_FAILED(rv) || primitiveType != nsIDOMCSSPrimitiveValue::CSS_PX) + return -1; + + float dimension = 0; + rv = dimensionValue->GetFloatValue(nsIDOMCSSPrimitiveValue::CSS_PX, + &dimension); + if (NS_FAILED(rv)) + return -1; + + return NSToIntRound(dimension); +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::Run() +{ + // Some of this is borrowed from widget/src/cocoa/nsMenuItemIconX.mm + if (mIconRequest) { + mIconRequest->Cancel(NS_BINDING_ABORTED); + mIconRequest = nsnull; + } + + if (!mMenuItem) { + // Our menu item got destroyed already + return NS_OK; + } + + mMenuItem->GetContent(getter_AddRefs(mContent)); + + if (!ShouldShowIcon()) { + ClearIcon(); + return NS_OK; + } + + mIconLoaded = PR_FALSE; + + nsAutoString uriString; + PRBool hasImage = mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::image, + uriString); + + nsresult rv; + nsCOMPtr domRect; + + if (!hasImage) { + nsCOMPtr domDocView = + do_QueryInterface(mContent->GetDocument()); + if (!domDocView) { + return NS_ERROR_FAILURE; + } + + nsCOMPtr domAbstractView; + domDocView->GetDefaultView(getter_AddRefs(domAbstractView)); + if (!domAbstractView) { + return NS_ERROR_FAILURE; + } + + nsCOMPtr domViewCSS = + do_QueryInterface(domAbstractView); + if (!domViewCSS) { + return NS_ERROR_FAILURE; + } + + nsCOMPtr domElement = do_QueryInterface(mContent); + if (!domElement) { + return NS_ERROR_FAILURE; + } + + nsCOMPtr cssStyleDecl; + domViewCSS->GetComputedStyle(domElement, EmptyString(), + getter_AddRefs(cssStyleDecl)); + if (!cssStyleDecl) { + return NS_ERROR_FAILURE; + } + + nsCOMPtr cssValue; + cssStyleDecl->GetPropertyCSSValue(NS_LITERAL_STRING("list-style-image"), + getter_AddRefs(cssValue)); + if (!cssValue) { + return NS_ERROR_FAILURE; + } + + nsCOMPtr primitiveValue = + do_QueryInterface(cssValue); + if (!primitiveValue) { + return NS_ERROR_FAILURE; + } + + PRUint16 primitiveType; + rv = primitiveValue->GetPrimitiveType(&primitiveType); + if (NS_FAILED(rv)) { + return rv; + } + + if (primitiveType != nsIDOMCSSPrimitiveValue::CSS_URI) { + return NS_ERROR_FAILURE; + } + + rv = primitiveValue->GetStringValue(uriString); + if (NS_FAILED(rv)) { + return rv; + } + + cssStyleDecl->GetPropertyCSSValue(NS_LITERAL_STRING("-moz-image-region"), + getter_AddRefs(cssValue)); + if (cssValue) { + primitiveValue = do_QueryInterface(cssValue); + if (primitiveValue) { + rv = primitiveValue->GetPrimitiveType(&primitiveType); + if (NS_SUCCEEDED(rv) && primitiveType == + nsIDOMCSSPrimitiveValue::CSS_RECT) { + primitiveValue->GetRectValue(getter_AddRefs(domRect)); + } + } + } + } + + nsCOMPtr uri; + rv = NS_NewURI(getter_AddRefs(uri), uriString); + if (NS_FAILED(rv)) { + ClearIcon(); + return NS_OK; + } + + nsCOMPtr loader = do_GetService("@mozilla.org/image/loader;1"); + if (!loader) { + return NS_OK; + } + + nsIDocument *doc = mContent->GetDocument(); + nsCOMPtr loadGroup = doc->GetDocumentLoadGroup(); + +#ifdef MOZILLA_1_9_2_BRANCH + loader->LoadImage(uri, nsnull, nsnull, loadGroup, this, + nsnull, nsIRequest::LOAD_NORMAL, nsnull, + nsnull, getter_AddRefs(mIconRequest)); +#else + loader->LoadImage(uri, nsnull, nsnull, loadGroup, this, + nsnull, nsIRequest::LOAD_NORMAL, nsnull, + nsnull, nsnull, getter_AddRefs(mIconRequest)); +#endif + + mImageRect.Empty(); + + if (domRect) { + PRInt32 bottom = GetDOMRectSide(domRect, &nsIDOMRect::GetBottom); + PRInt32 right = GetDOMRectSide(domRect, &nsIDOMRect::GetRight); + PRInt32 top = GetDOMRectSide(domRect, &nsIDOMRect::GetTop); + PRInt32 left = GetDOMRectSide(domRect, &nsIDOMRect::GetLeft); + + if (top < 0 || left < 0 || bottom <= top || right <= left) { + return NS_ERROR_FAILURE; + } + + mImageRect.SetRect(left, top, right - left, bottom - top); + } + + return NS_OK; +} + +void +uGlobalMenuIconLoader::ClearIcon() +{ + dbusmenu_menuitem_property_remove(mMenuItem->GetDbusMenuItem(), + DBUSMENU_MENUITEM_PROP_ICON_DATA); +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStartRequest(imgIRequest *aRequest) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStartDecode(imgIRequest *aRequest) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStartContainer(imgIRequest *aRequest, imgIContainer *aContainer) +{ +#ifndef MOZILLA_1_9_2_BRANCH + aContainer->RequestDecode(); +#endif + return NS_OK; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStartFrame(imgIRequest *aRequest, PRUint32 aFrame) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnDataAvailable(imgIRequest *aRequest, + PRBool aCurrentFrame, + const nsIntRect *aRect) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStopFrame(imgIRequest *aRequest, PRUint32 aFrame) +{ + if (aRequest != mIconRequest) { + return NS_ERROR_FAILURE; + } + + if (mIconLoaded) { + return NS_OK; + } + + mIconLoaded = PR_TRUE; + + nsCOMPtr img; + aRequest->GetImage(getter_AddRefs(img)); + if (!img) { + return NS_ERROR_FAILURE; + } + + PRInt32 origWidth; + PRInt32 origHeight; + img->GetWidth(&origWidth); + img->GetHeight(&origHeight); + + PRBool needsClip = PR_FALSE; + + if (!mImageRect.IsEmpty()) { + if (mImageRect.XMost() > origWidth || mImageRect.YMost() > origHeight) { + return NS_ERROR_FAILURE; + } + + if (!(mImageRect.x == 0 && mImageRect.y == 0 && + mImageRect.width == origWidth && mImageRect.height == origHeight)) { + needsClip = PR_TRUE; + } + } + + nsCOMPtr clippedImg; + if (needsClip) { +#ifdef MOZILLA_1_9_2_BRANCH + nsresult rv = img->ExtractCurrentFrame(mImageRect, + getter_AddRefs(clippedImg)); +#else + nsresult rv = img->ExtractFrame(0, mImageRect, 0, + getter_AddRefs(clippedImg)); +#endif + if (NS_FAILED(rv)) { + return NS_ERROR_FAILURE; + } + } + + nsCOMPtr converter = + do_GetService("@mozilla.org/widget/image-to-gdk-pixbuf;1"); + if (!converter) { + return NS_ERROR_FAILURE; + } + + GdkPixbuf *pixbuf = + converter->ConvertImageToPixbuf(clippedImg ? clippedImg : img); + if (pixbuf) { + dbusmenu_menuitem_property_set_image(mMenuItem->GetDbusMenuItem(), + DBUSMENU_MENUITEM_PROP_ICON_DATA, + pixbuf); + g_object_unref(pixbuf); + } else { + ClearIcon(); + } + + return NS_OK; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStopContainer(imgIRequest *aRequest, + imgIContainer *aContainer) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStopDecode(imgIRequest *aRequest, nsresult status, + const PRUnichar *statusArg) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +uGlobalMenuIconLoader::OnStopRequest(imgIRequest *aRequest, PRBool aIsLastPart) +{ + if (mIconRequest) { + mIconRequest->Cancel(NS_BINDING_ABORTED); + mIconRequest = nsnull; + } + + return NS_OK; +} + +#ifndef MOZILLA_1_9_2_BRANCH +NS_IMETHODIMP +uGlobalMenuIconLoader::OnDiscard(imgIRequest *aRequest) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} +#endif + +NS_IMETHODIMP +uGlobalMenuIconLoader::FrameChanged(imgIContainer *aContainer, +#ifdef MOZILLA_1_9_2_BRANCH + nsIntRect *aDirtyRect) +#else + const nsIntRect *aDirtyRect) +#endif +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +void +uGlobalMenuIconLoader::Destroy() +{ + if (mIconRequest) { + mIconRequest->Cancel(NS_BINDING_ABORTED); + mIconRequest = nsnull; + } + + mMenuItem = nsnull; +} + +void +uGlobalMenuObject::GetContent(nsIContent **_retval) +{ + if (!_retval) { + return; + } + *_retval = mContent; + NS_IF_ADDREF(*_retval); +} + +// Synchronize the 'label' and 'accesskey' attributes on the DOM node +// with the 'label' property on the dbusmenu node +void +uGlobalMenuObject::SyncLabelFromContent() +{ + // Gecko stores the label and access key in separate attributes + // so we need to convert label="Foo"/accesskey="F" in to + // label="_Foo" for dbusmenu + + nsAutoString label; + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::label, label); + + nsAutoString accesskey; + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::accesskey, accesskey); + + const PRUnichar *key = accesskey.BeginReading(); + PRUnichar *cur = label.BeginWriting(); + PRUnichar *end = label.EndWriting(); + int length = label.Length(); + int pos = 0; + PRBool foundAccessKey = false; + + while(cur < end) { + if((*cur == *key && !foundAccessKey) || *cur == PRUnichar('_')) { + + length += 1; + label.SetLength(length); + int newLength = label.Length(); + if(length != newLength) + break; + + cur = label.BeginWriting() + pos; + end = label.EndWriting(); + memmove(cur + 1, cur, (length - 1 - pos) * sizeof(PRUnichar)); +// \^/ + *cur = PRUnichar('_'); // Yeah! +// v + + if(*cur == *key) + foundAccessKey = true; + + cur += 2; + pos += 2; + + } else { + cur++; + pos++; + } + } + + // Ellipsize long labels. I've picked an arbitrary length here + if(length > 36) { + cur = label.BeginWriting(); + *(cur + 33) = PRUnichar('.'); + *(cur + 34) = PRUnichar('.'); + *(cur + 35) = PRUnichar('.'); + *(cur + 36) = nsnull; + label.SetLength(36); + } + + nsCAutoString clabel; + CopyUTF16toUTF8(label, clabel); + dbusmenu_menuitem_property_set(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_LABEL, + clabel.get()); +} + +// Synchronize the 'hidden' attribute on the DOM node with the +// 'visible' property on the dbusmenu node +void +uGlobalMenuObject::SyncVisibilityFromContent() +{ + dbusmenu_menuitem_property_set_bool(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_VISIBLE, + !mContent->AttrValueIs(kNameSpaceID_None, + uWidgetAtoms::hidden, + uWidgetAtoms::_true, + eCaseMatters)); +} + +// Synchronize the 'disabled' attribute on the DOM node with the +// 'sensitivity' property on the dbusmenu node +void +uGlobalMenuObject::SyncSensitivityFromContent() +{ + dbusmenu_menuitem_property_set_bool(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_ENABLED, + !mContent->AttrValueIs(kNameSpaceID_None, + uWidgetAtoms::disabled, + uWidgetAtoms::_true, + eCaseMatters)); +} + +// Synchronize the 'disabled' attribute on the specified DOM node with the +// 'sensitivity' property on the dbusmenu node +void +uGlobalMenuObject::SyncSensitivityFromContent(nsIContent *aContent) +{ + dbusmenu_menuitem_property_set_bool(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_ENABLED, + !aContent->AttrValueIs(kNameSpaceID_None, + uWidgetAtoms::disabled, + uWidgetAtoms::_true, + eCaseMatters)); +} + +void +uGlobalMenuObject::SyncIconFromContent() +{ + if (!mIconLoader) { + mIconLoader = new uGlobalMenuIconLoader(this); + } + + mIconLoader->LoadIcon(); +} + +void +uGlobalMenuObject::DestroyIconLoader() +{ + if (mIconLoader) { + mIconLoader->Destroy(); + } +} --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuObject.h +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuObject.h @@ -0,0 +1,125 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUBASE_H +#define _U_GLOBALMENUBASE_H + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "uGlobalMenuDocListener.h" + +enum uMenuObjectType { + MenuBar, + Menu, + MenuItem, + MenuSeparator, + MenuDummy +}; + +class uGlobalMenuObject; + +class uGlobalMenuIconLoader: public imgIDecoderObserver, + public nsRunnable +{ + friend class uGlobalMenuObject; +public: + NS_DECL_ISUPPORTS + NS_DECL_IMGIDECODEROBSERVER + NS_DECL_IMGICONTAINEROBSERVER + NS_DECL_NSIRUNNABLE + + void LoadIcon (); + + uGlobalMenuIconLoader (uGlobalMenuObject *aMenuItem): + mMenuItem(aMenuItem) { }; + ~uGlobalMenuIconLoader () { }; + +protected: + void Destroy (); + +private: + void ClearIcon (); + PRBool ShouldShowIcon (); + + PRBool mIconLoaded; + uGlobalMenuObject *mMenuItem; + nsCOMPtr mContent; + nsCOMPtr mIconRequest; + nsIntRect mImageRect; +}; + +class uGlobalMenuObject +{ +public: + uGlobalMenuObject (uMenuObjectType aType): mDbusMenuItem(nsnull), + mListener(nsnull), + mParent(nsnull), + mType(aType) { }; + DbusmenuMenuitem* GetDbusMenuItem () { return mDbusMenuItem; } + uGlobalMenuObject* GetParent() { return mParent; } + uMenuObjectType GetType() { return mType; } + void GetContent (nsIContent **_retval); + virtual ~uGlobalMenuObject () { }; + +protected: + void SyncLabelFromContent (); + void SyncVisibilityFromContent (); + void SyncSensitivityFromContent (); + void SyncSensitivityFromContent (nsIContent *aContent); + void SyncIconFromContent (); + void DestroyIconLoader (); + + nsCOMPtr mContent; + DbusmenuMenuitem *mDbusMenuItem; + nsRefPtr mListener; + uGlobalMenuObject *mParent; + uMenuObjectType mType; + +private: + nsRefPtr mIconLoader; +}; + +#endif --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuDummy.cpp +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuDummy.cpp @@ -0,0 +1,118 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * Mike Conley + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include + +#include +#include + +#include "uGlobalMenuDummy.h" +#include "uWidgetAtoms.h" + + +nsresult +uGlobalMenuDummy::ConstructDbusMenuItem() +{ + mDbusMenuItem = dbusmenu_menuitem_new(); + if(!mDbusMenuItem) + return NS_ERROR_OUT_OF_MEMORY; + + dbusmenu_menuitem_property_set(mDbusMenuItem, + DBUSMENU_MENUITEM_PROP_VISIBLE, + FALSE); + + return NS_OK; +} + +uGlobalMenuDummy::~uGlobalMenuDummy() +{ + + if(mDbusMenuItem) + g_object_unref(mDbusMenuItem); +} + +nsresult +uGlobalMenuDummy::Init(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent) +{ + NS_ENSURE_ARG(aParent); + NS_ENSURE_ARG(aListener); + NS_ENSURE_ARG(aContent); + + mParent = aParent; + mListener = aListener; + mContent = aContent; + + nsresult rv = ConstructDbusMenuItem(); + NS_ENSURE_SUCCESS(rv, rv); + + return NS_OK; +} + +// GlobalMenuDummy is inert, and does not observe/react to content +// changes. The following methods are included simply to fill out +// the interface. +void +uGlobalMenuDummy::ObserveAttributeChanged(nsIDocument *aDocument, + nsIContent *aContent, + nsIAtom *aAttribute) +{ + +} + +void +uGlobalMenuDummy::ObserveContentRemoved(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + +} + +void +uGlobalMenuDummy::ObserveContentInserted(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + +} --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuSeparator.h +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuSeparator.h @@ -0,0 +1,65 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUSEPARATOR_H +#define _U_GLOBALMENUSEPARATOR_H + +#include "uGlobalMenuObject.h" +#include "uMenuChangeObserver.h" + +class nsIContent; +class uGlobalMenuDocListener; + +class uGlobalMenuSeparator: public uGlobalMenuObject, + public uMenuChangeObserver +{ +public: + NS_DECL_UMENUCHANGEOBSERVER + uGlobalMenuSeparator (): uGlobalMenuObject(MenuSeparator) { }; + + nsresult Init (uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent); +private: + ~uGlobalMenuSeparator (); + + nsresult ConstructDbusMenuItem (); +}; + + +#endif --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uWidgetAtoms.h +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uWidgetAtoms.h @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Original Author: Mike Pinkerton (pinkerton@netscape.com) + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_WIDGETATOMS_H +#define _U_WIDGETATOMS_H + +#include "prtypes.h" +#include "nscore.h" + +class nsIAtom; + +class uWidgetAtoms { +public: + + static nsresult RegisterAtoms(); + +#define WIDGET_ATOM(_name, _value) static nsIAtom* _name; +#include "uWidgetAtomList.h" +#undef WIDGET_ATOM + +}; + +#endif --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenu.cpp +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenu.cpp @@ -0,0 +1,698 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "uGlobalMenu.h" +#include "uGlobalMenuDummy.h" +#include "uGlobalMenuItem.h" +#include "uGlobalMenuSeparator.h" +#include "uWidgetAtoms.h" + +/*static*/ PRBool +uGlobalMenu::MenuOpenCallback(DbusmenuMenuitem *menu, + void *data) +{ + uGlobalMenu *self = static_cast(data); + self->OnOpen(); + + // We return false here for "needsUpdate", as we have no way of + // knowing in advance if the menu structure is going to be updated. + // The menu layout will still update on the client, but we won't block + // opening the menu until it's happened + return PR_FALSE; +} + +void +uGlobalMenu::Activate() +{ + mContent->SetAttr(kNameSpaceID_None, uWidgetAtoms::menuactive, + NS_LITERAL_STRING("true"), PR_TRUE); + + nsIDocument *doc = mContent->GetOwnerDoc(); + nsCOMPtr target = do_QueryInterface(mContent); + if (doc && target) { + nsCOMPtr docEvent = do_QueryInterface(doc); + if (docEvent) { + nsCOMPtr event; + docEvent->CreateEvent(NS_LITERAL_STRING("Events"), + getter_AddRefs(event)); + if (event) { + event->InitEvent(NS_LITERAL_STRING("DOMMenuItemActive"), + PR_TRUE, PR_TRUE); + nsCOMPtr priv = do_QueryInterface(event); + if (priv) { + priv->SetTrusted(PR_TRUE); + } + PRBool dummy; + target->DispatchEvent(event, &dummy); + } + + docEvent->CreateEvent(NS_LITERAL_STRING("xulcommandevent"), + getter_AddRefs(event)); + if(event) { + nsCOMPtr cmdEvent = do_QueryInterface(event); + if(cmdEvent) { + nsCOMPtr domDocView = do_QueryInterface(doc); + nsCOMPtr window; + domDocView->GetDefaultView(getter_AddRefs(window)); + if(window) { + cmdEvent->InitCommandEvent(NS_LITERAL_STRING("command"), + PR_TRUE, PR_TRUE, window, 0, + PR_FALSE, PR_FALSE, PR_FALSE, + PR_FALSE, nsnull); + nsCOMPtr priv = do_QueryInterface(event); + if(priv) { + priv->SetTrusted(PR_TRUE); + } + PRBool dummy; + target->DispatchEvent(event, &dummy); + } + } + } + } + } +} + +void +uGlobalMenu::Deactivate() +{ + mContent->UnsetAttr(kNameSpaceID_None, uWidgetAtoms::menuactive, PR_TRUE); + + nsIDocument *doc = mContent->GetOwnerDoc(); + if (doc) { + nsCOMPtr docEvent = do_QueryInterface(doc); + if (docEvent) { + nsCOMPtr event; + docEvent->CreateEvent(NS_LITERAL_STRING("Events"), + getter_AddRefs(event)); + if (event) { + event->InitEvent(NS_LITERAL_STRING("DOMMenuItemInactive"), + PR_TRUE, PR_TRUE); + nsCOMPtr target = do_QueryInterface(mContent); + if (target) { + nsCOMPtr priv = do_QueryInterface(event); + if (priv) { + priv->SetTrusted(PR_TRUE); + } + PRBool dummy; + target->DispatchEvent(event, &dummy); + } + } + } + } +} + +void +uGlobalMenu::OnOpen() +{ + Activate(); + + mContent->SetAttr(kNameSpaceID_None, uWidgetAtoms::open, NS_LITERAL_STRING("true"), PR_TRUE); + + nsIDocument *doc = mPopupContent->GetOwnerDoc(); + if(doc) { + nsCOMPtr docEvent = do_QueryInterface(doc); + if(docEvent) { + nsCOMPtr event; + docEvent->CreateEvent(NS_LITERAL_STRING("mouseevent"), + getter_AddRefs(event)); + if(event) { + nsCOMPtr mouseEvent = do_QueryInterface(event); + if(mouseEvent) { + nsCOMPtr domDocView = do_QueryInterface(doc); + nsCOMPtr window; + domDocView->GetDefaultView(getter_AddRefs(window)); + if(window) { + mouseEvent->InitMouseEvent(NS_LITERAL_STRING("popupshowing"), + PR_TRUE, PR_TRUE, window, nsnull, + 0, 0, 0, 0, PR_FALSE, PR_FALSE, + PR_FALSE, PR_FALSE, 0, nsnull); + nsCOMPtr target = do_QueryInterface(mPopupContent); + if(target) { + nsCOMPtr priv = do_QueryInterface(event); + if(priv) { + priv->SetTrusted(PR_TRUE); + } + PRBool dummy; + target->DispatchEvent(event, &dummy); + // XXX: dummy == PR_FALSE means that we should prevent the + // the menu from opening, but there's no way to do this + + mouseEvent->InitMouseEvent(NS_LITERAL_STRING("popupshown"), + PR_TRUE, PR_TRUE, window, nsnull, + 0, 0, 0, 0, PR_FALSE, PR_FALSE, + PR_FALSE, PR_FALSE, 0, nsnull); + target->DispatchEvent(event, &dummy); + } + } + } + } + } + } + + mTracker->ChildPopupOpen(this); + + nsCOMPtr os = + do_GetService("@mozilla.org/observer-service;1"); + if(os) { + nsAutoString popupID; + mPopupContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::id, popupID); + os->NotifyObservers(nsnull, "menuservice-popup-open", popupID.get()); + } +} + +void +uGlobalMenu::OnClose(PRBool propagate) +{ + mContent->UnsetAttr(kNameSpaceID_None, uWidgetAtoms::open, PR_TRUE); + + nsIDocument *doc = mPopupContent->GetOwnerDoc(); + if(doc) { + nsCOMPtr docEvent = do_QueryInterface(doc); + if(docEvent) { + nsCOMPtr event; + docEvent->CreateEvent(NS_LITERAL_STRING("uievent"), + getter_AddRefs(event)); + if(event) { + nsCOMPtr mouseEvent = do_QueryInterface(event); + if(mouseEvent) { + nsCOMPtr domDocView = do_QueryInterface(doc); + nsCOMPtr window; + domDocView->GetDefaultView(getter_AddRefs(window)); + if(window) { + mouseEvent->InitMouseEvent(NS_LITERAL_STRING("popuphiding"), + PR_TRUE, PR_TRUE, window, nsnull, + 0, 0, 0, 0, PR_FALSE, PR_FALSE, + PR_FALSE, PR_FALSE, 0, nsnull); + nsCOMPtr target = do_QueryInterface(mPopupContent); + if(target) { + nsCOMPtr priv = do_QueryInterface(event); + if(priv) { + priv->SetTrusted(PR_TRUE); + } + PRBool dummy; + target->DispatchEvent(event, &dummy); + + mouseEvent->InitMouseEvent(NS_LITERAL_STRING("popuphidden"), + PR_TRUE, PR_TRUE, window, nsnull, + 0, 0, 0, 0, PR_FALSE, PR_FALSE, + PR_FALSE, PR_FALSE, 0, nsnull); + target->DispatchEvent(event, &dummy); + } + } + } + } + } + } + + mTracker->ChildPopupClosed(this); + + Deactivate(); + + if(propagate && mParent->GetType() == Menu) { + uGlobalMenu *parent = static_cast(mParent); + parent->OnClose(propagate); + } +} + +nsresult +uGlobalMenu::ConstructDbusMenuItem() +{ + mDbusMenuItem = dbusmenu_menuitem_new(); + if(!mDbusMenuItem) + return NS_ERROR_OUT_OF_MEMORY; + + // We need a placeholder child until we get our own children + // This ensures that the menu gets a submenu now, which we need + // in order to get our AboutToShow signal, and trigger the loading + // of our lazy-loaded menus (eg, bookmarks) + + mPlaceHolder = dbusmenu_menuitem_new(); + if(mPlaceHolder) { + dbusmenu_menuitem_property_set(mPlaceHolder, + DBUSMENU_MENUITEM_PROP_LABEL, ""); + dbusmenu_menuitem_property_set_bool(mPlaceHolder, + DBUSMENU_MENUITEM_PROP_VISIBLE, + PR_TRUE); + dbusmenu_menuitem_property_set_bool(mPlaceHolder, + DBUSMENU_MENUITEM_PROP_ENABLED, + PR_FALSE); + dbusmenu_menuitem_child_append(mDbusMenuItem, mPlaceHolder); + } + + mOpenHandlerID = g_signal_connect(G_OBJECT(mDbusMenuItem), + "about-to-show", + G_CALLBACK(MenuOpenCallback), + this); + + // FIXME: We don't handle menus with icons yet + SyncLabelFromContent(); + if (mCommandContent) { + SyncSensitivityFromContent(mCommandContent); + } else { + SyncSensitivityFromContent(); + } + SyncVisibilityFromContent(); + SyncIconFromContent(); + + return NS_OK; +} + +void +uGlobalMenu::GetMenuPopupFromMenu(nsIContent **aResult) +{ + if(!aResult) + return; + + *aResult = nsnull; + + // Taken from widget/src/cocoa/nsMenuX.mm. Not sure if we need this + nsresult rv; + nsCOMPtr xblService = do_GetService("@mozilla.org/xbl;1", &rv); + if (!xblService) + return; + + PRInt32 dummy; + nsCOMPtr tag; + xblService->ResolveTag(mContent, &dummy, getter_AddRefs(tag)); + if (tag == uWidgetAtoms::menupopup) { + *aResult = mContent; + NS_ADDREF(*aResult); + return; + } + + PRUint32 count = mContent->GetChildCount(); + + for (PRUint32 i = 0; i < count; i++) { + PRInt32 dummy; + nsIContent *child = mContent->GetChildAt(i); + nsCOMPtr tag; + xblService->ResolveTag(child, &dummy, getter_AddRefs(tag)); + if (tag == uWidgetAtoms::menupopup) { + *aResult = child; + NS_ADDREF(*aResult); + return; + } + } +} + +void +uGlobalMenu::InsertMenuObjectAt(uGlobalMenuObject *menuObj, + PRUint32 index) +{ + if(mMenuObjects.Length() == 0 and mPlaceHolder) { + dbusmenu_menuitem_child_delete(mDbusMenuItem, mPlaceHolder); + } + + PRBool res = dbusmenu_menuitem_child_add_position(mDbusMenuItem, + menuObj->GetDbusMenuItem(), + index); + NS_ASSERTION(res, "Failed to add child to menu. Everything will go horribly wrong now"); + + mMenuObjects.InsertElementAt(index, menuObj); +} + +void +uGlobalMenu::AppendMenuObject(uGlobalMenuObject *menuObj) +{ + if(mMenuObjects.Length() == 0 and mPlaceHolder) { + dbusmenu_menuitem_child_delete(mDbusMenuItem, mPlaceHolder); + } + + PRBool res = dbusmenu_menuitem_child_append(mDbusMenuItem, + menuObj->GetDbusMenuItem()); + NS_ASSERTION(res, "Failed to append child to menu. Everything will go horribly wrong now"); + + mMenuObjects.AppendElement(menuObj); +} + +void +uGlobalMenu::RemoveMenuObjectAt(PRUint32 index) +{ + PRBool res = dbusmenu_menuitem_child_delete(mDbusMenuItem, + mMenuObjects[index]->GetDbusMenuItem()); + NS_ASSERTION(res, "Failed to delete child from menu. Everything will go horribly wrong now"); + + mMenuObjects.RemoveElementAt(index); + + if(mMenuObjects.Length() == 0 and mPlaceHolder) { + dbusmenu_menuitem_child_append(mDbusMenuItem, mPlaceHolder); + } +} + +nsresult +uGlobalMenu::Build() +{ + GetMenuPopupFromMenu(getter_AddRefs(mPopupContent)); + + if(!mPopupContent) { + // The menu has no popup, so there are no menuitems here + return NS_OK; + } + + // Manually wrap the menupopup node to make sure it's bounded + // Borrowed from widget/src/cocoa/nsMenuX.mm, we need this to make + // some menus in Thunderbird work + if (!mPopupBound) { + nsIDocument *doc = mPopupContent->GetCurrentDoc(); + if (doc) { + nsresult rv; + nsCOMPtr xpconnect = + do_GetService(nsIXPConnect::GetCID(), &rv); + if (NS_SUCCEEDED(rv)) { + nsIScriptGlobalObject *sgo = doc->GetScriptGlobalObject(); + nsCOMPtr scriptContext = sgo->GetContext(); + JSObject *global = sgo->GetGlobalJSObject(); + if (scriptContext && global) { + JSContext *cx = (JSContext *)scriptContext->GetNativeContext(); + if (cx) { + nsCOMPtr wrapper; + xpconnect->WrapNative(cx, global, + mPopupContent, NS_GET_IID(nsISupports), + getter_AddRefs(wrapper)); + mPopupBound = PR_TRUE; + } + } + } + } + } + + if(mContent != mPopupContent) { + mListener->RegisterForContentChanges(mPopupContent, this); + } + + PRUint32 count = mPopupContent->GetChildCount(); + + for(PRUint32 i = 0; i < count; i++) { + nsIContent *child = mPopupContent->GetChildAt(i); +#ifdef MOZILLA_1_9_2_BRANCH + if(child and child->GetNameSpaceID() == kNameSpaceID_XUL) { +#else + if(child and child->IsXUL()) { +#endif + nsresult rv; + uGlobalMenuObject *newItem; + if(child->Tag() == uWidgetAtoms::menu) { + uGlobalMenu *menu = new uGlobalMenu(); + if(!menu) + return NS_ERROR_OUT_OF_MEMORY; + + rv = menu->Init(static_cast(this), + mListener, + child, + static_cast(mTracker)); + newItem = static_cast(menu); + + } else if(child->Tag() == uWidgetAtoms::menuitem) { + uGlobalMenuItem *item = new uGlobalMenuItem(); + if(!item) + return NS_ERROR_OUT_OF_MEMORY; + + rv = item->Init(static_cast(this), + mListener, + child); + newItem = static_cast(item); + + } else if(child->Tag() == uWidgetAtoms::menuseparator) { + uGlobalMenuSeparator *sep = new uGlobalMenuSeparator(); + if(!sep) + return NS_ERROR_OUT_OF_MEMORY; + + rv = sep->Init(static_cast(this), + mListener, + child); + newItem = static_cast(sep); + } else { + // We didn't recognize the tag. We'll insert an invisible + // dummy node so that the indices between the hidden XUL menu + // and the GlobalMenu stay in sync. + uGlobalMenuDummy *dummy = new uGlobalMenuDummy(); + if(!dummy) + return NS_ERROR_OUT_OF_MEMORY; + + rv = dummy->Init(static_cast(this), + mListener, + child); + newItem = static_cast(dummy); + } + + AppendMenuObject(newItem); + // We check the status of Init after appending the new object + // to our local array, to avoid leaking items in the event of failure + NS_ENSURE_SUCCESS(rv, rv); + } + } + + return NS_OK; +} + +void +uGlobalMenu::Rebuild() +{ + PRUint32 count = mMenuObjects.Length(); + for(PRUint32 i = 0; i < count; i++) { + RemoveMenuObjectAt(0); + } + + if(mContent != mPopupContent) { + mListener->UnregisterForContentChanges(mPopupContent); + } + + mPopupBound = PR_FALSE; + + Build(); +} + +uGlobalMenu::~uGlobalMenu() +{ + mListener->UnregisterForContentChanges(mContent); + if(mContent != mPopupContent) { + mListener->UnregisterForContentChanges(mPopupContent); + } + if(mCommandContent) { + mListener->UnregisterForContentChanges(mCommandContent); + } + + DestroyIconLoader(); + + if(mPlaceHolder) { + g_object_unref(mPlaceHolder); + } + + if(mDbusMenuItem) { + g_signal_handler_disconnect(mDbusMenuItem, mOpenHandlerID); + g_object_unref(mDbusMenuItem); + } +} + +nsresult +uGlobalMenu::Init(uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent, + uGlobalMenuPopupTracker *aTracker) +{ + NS_ENSURE_ARG(aParent); + NS_ENSURE_ARG(aListener); + NS_ENSURE_ARG(aContent); + NS_ENSURE_ARG(aTracker); + + mParent = aParent; + mListener = aListener; + mContent = aContent; + mTracker = aTracker; + + nsIDocument *doc = mContent->GetCurrentDoc(); + if(doc) { + nsAutoString attr; + mContent->GetAttr(kNameSpaceID_None, uWidgetAtoms::command, attr); +#ifdef MOZILLA_1_9_2_BRANCH + nsCOMPtr domDoc(do_QueryInterface(doc)); + nsCOMPtr domElmt; +#endif + if(!attr.IsEmpty()) { +#ifdef MOZILLA_1_9_2_BRANCH + if (domDoc) { + domDoc->GetElementById(attr, getter_AddRefs(domElmt)); + } + + mCommandContent = do_QueryInterface(domElmt); +#else + mCommandContent = doc->GetElementById(attr); +#endif + } + } + + nsresult rv = ConstructDbusMenuItem(); + NS_ENSURE_SUCCESS(rv, rv); + + mListener->RegisterForContentChanges(mContent, this); + if(mCommandContent) { + mListener->RegisterForContentChanges(mCommandContent, this); + } + + return Build(); +} + +void +uGlobalMenu::OpenMenu() +{ + dbusmenu_menuitem_show_to_user(mDbusMenuItem, 0); +} + +void +uGlobalMenu::ObserveAttributeChanged(nsIDocument *aDocument, + nsIContent *aContent, + nsIAtom *aAttribute) +{ + NS_ASSERTION(aContent == mContent || aContent == mPopupContent, + "Received an event that wasn't meant for us!"); + + if(aAttribute == uWidgetAtoms::open) + return; + + if(aAttribute == uWidgetAtoms::disabled) { + SyncSensitivityFromContent(); + } else if (aAttribute == uWidgetAtoms::hidden) { + SyncVisibilityFromContent(); + } else if (aAttribute == uWidgetAtoms::label || + aAttribute == uWidgetAtoms::accesskey) { + SyncLabelFromContent(); + } else if (aAttribute == uWidgetAtoms::image) { + SyncIconFromContent(); + } +} + +void +uGlobalMenu::ObserveContentRemoved(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + NS_ASSERTION(aContainer == mContent || aContainer == mPopupContent, + "Received an event that wasn't meant for us!"); + + if(aContainer == mContent) { + // Should only get this when a menupopup is removed, in + // which case, we need to rebuild the whole menu + Rebuild(); + } else if(aContainer == mPopupContent) { + RemoveMenuObjectAt(aIndexInContainer); + } +} + +void +uGlobalMenu::ObserveContentInserted(nsIDocument *aDocument, + nsIContent *aContainer, + nsIContent *aChild, + PRInt32 aIndexInContainer) +{ + NS_ASSERTION(aContainer == mContent || aContainer == mPopupContent, + "Received an event that wasn't meant for us!"); + + if(aContainer == mContent) { + // Should only get this when a menupopup is inserted, in + // which case, we need to rebuild the whole menu + Rebuild(); + } else if(aContainer == mPopupContent) { +#ifdef MOZILLA_1_9_2_BRANCH + if(aChild->GetNameSpaceID() == kNameSpaceID_XUL) { +#else + if(aChild->IsXUL()) { +#endif + uGlobalMenuObject *newItem; + if(aChild->Tag() == uWidgetAtoms::menu) { + uGlobalMenu *menu = new uGlobalMenu(); + + menu->Init(static_cast(this), + mListener, + aChild, + static_cast(mTracker)); + newItem = static_cast(menu); + + } else if(aChild->Tag() == uWidgetAtoms::menuitem) { + uGlobalMenuItem *menuitem = new uGlobalMenuItem(); + + menuitem->Init(static_cast(this), + mListener, + aChild); + newItem = static_cast(menuitem); + + } else if(aChild->Tag() == uWidgetAtoms::menuseparator) { + uGlobalMenuSeparator *menuseparator = new uGlobalMenuSeparator(); + + menuseparator->Init(static_cast(this), + mListener, + aChild); + newItem = static_cast(menuseparator); + } else { + // We didn't recognize the tag. We'll insert an invisible + // dummy node so that the indices between the hidden XUL menu + // and the GlobalMenu stay in sync. + uGlobalMenuDummy *dummy = new uGlobalMenuDummy(); + + dummy->Init(static_cast(this), + mListener, + aChild); + newItem = static_cast(dummy); + } + + InsertMenuObjectAt(newItem, aIndexInContainer); + } + } +} --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uWidgetAtoms.cpp +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uWidgetAtoms.cpp @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Original Author: Mike Pinkerton (pinkerton@netscape.com) + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include +#include +#include +#include +#include +#include +#include + +#define WIDGET_ATOM(_name, _value) nsIAtom* uWidgetAtoms::_name = 0; +#include "uWidgetAtomList.h" +#undef WIDGET_ATOM + +struct uWidgetAtom { + const char *raw; + nsIAtom **atom; +}; + +static const uWidgetAtom atoms[] = { +#define WIDGET_ATOM(_name, _value) { _value, &uWidgetAtoms::_name }, +#include "uWidgetAtomList.h" +#undef WIDGET_ATOM +}; + +nsresult +uWidgetAtoms::RegisterAtoms() +{ + nsCOMPtr as = + do_GetService("@mozilla.org/atom-service;1"); + NS_ENSURE_TRUE(as, NS_ERROR_OUT_OF_MEMORY); + + nsAutoString aAtomStr; + nsCAutoString cAtomStr; + + for (PRUint32 i = 0; i < NS_ARRAY_LENGTH(atoms); i++) { + cAtomStr = atoms[i].raw; + CopyUTF8toUTF16(cAtomStr, aAtomStr); + nsresult rv = as->GetAtom(aAtomStr, atoms[i].atom); + NS_ENSURE_SUCCESS(rv, rv); + } + + return NS_OK; +} --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuItem.h +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuItem.h @@ -0,0 +1,95 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUITEM_H +#define _U_GLOBALMENUITEM_H + +#include +#include +#include + +#include + +#include "uGlobalMenuObject.h" +#include "uMenuChangeObserver.h" + +class nsIContent; +class uGlobalMenuDocListener; + +enum uMenuItemType { + Normal, + CheckBox, + Radio +}; + +class uGlobalMenuItem: public uGlobalMenuObject, + public uMenuChangeObserver +{ +public: + NS_DECL_UMENUCHANGEOBSERVER + uGlobalMenuItem (): uGlobalMenuObject(MenuItem) { }; + + nsresult Init (uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent); + +private: + ~uGlobalMenuItem (); + + PRUint32 GetKeyCode (nsAString &aKeyName); + PRUint32 MozKeyCodeToGdkKeyCode (PRUint32 aMozKeyCode); + void SyncAccelFromContent (); + void SyncProperties (); + void SyncTypeAndStateFromContent (); + nsresult ConstructDbusMenuItem (); + static void ItemActivatedCallback (DbusmenuMenuitem *menuItem, + PRUint32 timeStamp, + void *data); + void Activate (); + void UncheckSiblings (); + + nsCOMPtr mCommandContent; + nsCOMPtr mKeyContent; + PRUint32 mHandlerID; + PRBool mIsToggle; + PRBool mToggleState; + uMenuItemType mType; +}; + + +#endif --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/src/uGlobalMenuDummy.h +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/src/uGlobalMenuDummy.h @@ -0,0 +1,66 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * Mike Conley + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _U_GLOBALMENUDUMMY_H +#define _U_GLOBALMENUDUMMY_H + +#include "uGlobalMenuObject.h" +#include "uMenuChangeObserver.h" + +class nsIContent; +class uGlobalMenuDocListener; + +class uGlobalMenuDummy: public uGlobalMenuObject, + public uMenuChangeObserver +{ +public: + NS_DECL_UMENUCHANGEOBSERVER + uGlobalMenuDummy (): uGlobalMenuObject(MenuDummy) { }; + + nsresult Init (uGlobalMenuObject *aParent, + uGlobalMenuDocListener *aListener, + nsIContent *aContent); +private: + ~uGlobalMenuDummy (); + + nsresult ConstructDbusMenuItem (); +}; + + +#endif --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/public/Makefile.in +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/public/Makefile.in @@ -0,0 +1,53 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Chris Coulson +# +# 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 +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +DEPTH = ../../../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +MODULE = globalmenu +XPI_NAME = globalmenu + +XPIDLSRCS = \ + uIGlobalMenuLoader.idl \ + uIGlobalMenuService.idl \ + $(NULL) + +include $(topsrcdir)/config/rules.mk --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/public/uIGlobalMenuService.idl +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/public/uIGlobalMenuService.idl @@ -0,0 +1,67 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include "nsISupports.idl" +#include "nsIObserver.idl" + +[ptr] native uGlobalMenuBarPtr(uGlobalMenuBar); +[ptr] native nsIWidgetPtr(nsIWidget); +[ptr] native nsIContentPtr(nsIContent); + +%{C++ +class uGlobalMenuBar; +%} + +[scriptable, uuid(92e2d4d4-84d6-400b-99ce-bb3b63639b5b)] +interface uIGlobalMenuService : nsISupports +{ + /* Create a menu bar from the specified DOM node and associate with the top-level + * window containing the specified DOM window */ + [noscript] void createGlobalMenuBar (in nsIWidgetPtr parent, in nsIContentPtr menuBarNode); + + /* Register a menu bar with the menu bar service */ + [noscript, notxpcom] void registerGlobalMenuBar (in uGlobalMenuBarPtr menuBar); + + /* Convenience functions to register to receive notification of the menu + * service online status changing */ + void registerNotification (in nsIObserver observer); + void unregisterNotification (in nsIObserver observer); + + /* Menu service online status */ + readonly attribute boolean online; +}; --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/components/public/uIGlobalMenuLoader.idl +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/components/public/uIGlobalMenuLoader.idl @@ -0,0 +1,44 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is globalmenu-extension. + * + * The Initial Developer of the Original Code is + * Canonical Ltd. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Chris Coulson + * + * 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 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include "nsISupports.idl" + +[scriptable, uuid(48a2ede5-d33b-4e34-8538-7987f69db0fc)] +interface uIGlobalMenuLoader : nsISupports +{ +}; --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/chrome/Makefile.in +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/chrome/Makefile.in @@ -0,0 +1,49 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Chris Coulson +# +# 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 +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +DEPTH = ../../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +MODULE = globalmenu +XPI_NAME = globalmenu +USE_EXTENSION_MANIFEST = 1 + +include $(topsrcdir)/config/rules.mk --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/chrome/jar.mn +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/chrome/jar.mn @@ -0,0 +1,8 @@ +globalmenu.jar: +% content globalmenu %content/ + content/firefoxOverlay.xul (content/firefoxOverlay.xul) + content/firefoxMenu.js (content/firefoxMenu.js) + content/thunderbirdOverlay.xul (content/thunderbirdOverlay.xul) + content/thunderbirdMenu.js (content/thunderbirdMenu.js) +% overlay chrome://browser/content/browser.xul chrome://globalmenu/content/firefoxOverlay.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} +% overlay chrome://messenger/content/messenger.xul chrome://globalmenu/content/thunderbirdOverlay.xul application={3550f703-e582-4d05-9a08-453d09bdfdc6} --- thunderbird-3.1.8+build1+nobinonly.orig/debian/globalmenu/chrome/content/thunderbirdOverlay.xul +++ thunderbird-3.1.8+build1+nobinonly/debian/globalmenu/chrome/content/thunderbirdOverlay.xul @@ -0,0 +1,41 @@ + + + + +