Binary files /tmp/z9opqjApkJ/thunderbird-11.0~b5+build2/comm-beta-11.0~b5+build2-source.tar.bz2 and /tmp/q1jGTa2qKd/thunderbird-11.0+build1/comm-beta-11.0~b5+build2-source.tar.bz2 differ diff -Nru thunderbird-11.0~b5+build2/comm-beta-11.0~b5+build2-source.tar.bz2.cdbs-config_list thunderbird-11.0+build1/comm-beta-11.0~b5+build2-source.tar.bz2.cdbs-config_list --- thunderbird-11.0~b5+build2/comm-beta-11.0~b5+build2-source.tar.bz2.cdbs-config_list 2012-03-13 20:25:49.000000000 +0000 +++ thunderbird-11.0+build1/comm-beta-11.0~b5+build2-source.tar.bz2.cdbs-config_list 1970-01-01 00:00:00.000000000 +0000 @@ -1,218 +0,0 @@ -mozilla/build/autoconf/config.guess -mozilla/calendar/libical/config.h -mozilla/config/config.mk -mozilla/ldap/sdks/c-sdk/config/autoconf/config.guess -mozilla/ldap/sdks/c-sdk/config/autoconf/config.sub -mozilla/ldap/sdks/c-sdk/config/config.mk -mozilla/mail/test/mozmill/newmailaccount/html/config.xml -mozilla/suite/themes/modern/global/config.css -mozilla/mozilla/build/autoconf/config.guess -mozilla/mozilla/build/autoconf/config.sub -mozilla/mozilla/config/config.mk -mozilla/mozilla/extensions/irc/locales/en-US/chrome/config.dtd -mozilla/mozilla/extensions/irc/xul/content/ceip/config.js -mozilla/mozilla/extensions/irc/xul/content/ceip/config.xul -mozilla/mozilla/extensions/irc/xul/content/config.css -mozilla/mozilla/extensions/irc/xul/content/config.js -mozilla/mozilla/extensions/irc/xul/content/config.xul -mozilla/mozilla/ipc/chromium/src/third_party/libevent/config.guess -mozilla/mozilla/ipc/chromium/src/third_party/libevent/config.h.in -mozilla/mozilla/ipc/chromium/src/third_party/libevent/config.sub -mozilla/mozilla/ipc/chromium/src/third_party/libevent/linux/config.h -mozilla/mozilla/ipc/chromium/src/third_party/libevent/mac/config.h -mozilla/mozilla/js/src/build/autoconf/config.guess -mozilla/mozilla/js/src/build/autoconf/config.sub -mozilla/mozilla/js/src/config/config.mk -mozilla/mozilla/js/src/ctypes/libffi/config.guess -mozilla/mozilla/js/src/ctypes/libffi/config.sub -mozilla/mozilla/media/libtheora/lib/config.h -mozilla/mozilla/media/libvpx/vpx_ports/config.h -mozilla/mozilla/mobile/android/chrome/content/config.xhtml -mozilla/mozilla/mobile/android/locales/en-US/chrome/config.dtd -mozilla/mozilla/mobile/android/locales/en-US/chrome/config.properties -mozilla/mozilla/mobile/android/themes/core/config.css -mozilla/mozilla/mobile/xul/chrome/content/config.js -mozilla/mozilla/mobile/xul/chrome/content/config.xul -mozilla/mozilla/mobile/xul/locales/en-US/chrome/config.dtd -mozilla/mozilla/mobile/xul/themes/core/config.css -mozilla/mozilla/modules/freetype2/builds/unix/config.guess -mozilla/mozilla/modules/freetype2/builds/unix/config.sub -mozilla/mozilla/nsprpub/build/autoconf/config.guess -mozilla/mozilla/nsprpub/build/autoconf/config.sub -mozilla/mozilla/nsprpub/config/config.mk -mozilla/mozilla/security/coreconf/config.mk -mozilla/mozilla/security/dbm/config/config.mk -mozilla/mozilla/security/dbm/src/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/config.mk -mozilla/mozilla/security/nss/cmd/libpkix/testutil/config.mk -mozilla/mozilla/security/nss/lib/base/config.mk -mozilla/mozilla/security/nss/lib/certdb/config.mk -mozilla/mozilla/security/nss/lib/certhigh/config.mk -mozilla/mozilla/security/nss/lib/ckfw/builtins/config.mk -mozilla/mozilla/security/nss/lib/ckfw/capi/config.mk -mozilla/mozilla/security/nss/lib/ckfw/config.mk -mozilla/mozilla/security/nss/lib/ckfw/dbm/config.mk -mozilla/mozilla/security/nss/lib/ckfw/nssmkey/config.mk -mozilla/mozilla/security/nss/lib/crmf/config.mk -mozilla/mozilla/security/nss/lib/cryptohi/config.mk -mozilla/mozilla/security/nss/lib/dev/config.mk -mozilla/mozilla/security/nss/lib/freebl/config.mk -mozilla/mozilla/security/nss/lib/jar/config.mk -mozilla/mozilla/security/nss/lib/libpkix/config.mk -mozilla/mozilla/security/nss/lib/libpkix/include/config.mk -mozilla/mozilla/security/nss/lib/libpkix/pkix/certsel/config.mk -mozilla/mozilla/security/nss/lib/libpkix/pkix/checker/config.mk -mozilla/mozilla/security/nss/lib/libpkix/pkix/config.mk -mozilla/mozilla/security/nss/lib/libpkix/pkix/crlsel/config.mk -mozilla/mozilla/security/nss/lib/libpkix/pkix/params/config.mk -mozilla/mozilla/security/nss/lib/libpkix/pkix/results/config.mk -mozilla/mozilla/security/nss/lib/libpkix/pkix/store/config.mk -mozilla/mozilla/security/nss/lib/libpkix/pkix/top/config.mk -mozilla/mozilla/security/nss/lib/libpkix/pkix/util/config.mk -mozilla/mozilla/security/nss/lib/libpkix/pkix_pl_nss/config.mk -mozilla/mozilla/security/nss/lib/libpkix/pkix_pl_nss/module/config.mk -mozilla/mozilla/security/nss/lib/libpkix/pkix_pl_nss/pki/config.mk -mozilla/mozilla/security/nss/lib/libpkix/pkix_pl_nss/system/config.mk -mozilla/mozilla/security/nss/lib/nss/config.mk -mozilla/mozilla/security/nss/lib/pk11wrap/config.mk -mozilla/mozilla/security/nss/lib/pkcs12/config.mk -mozilla/mozilla/security/nss/lib/pkcs7/config.mk -mozilla/mozilla/security/nss/lib/pki/config.mk -mozilla/mozilla/security/nss/lib/smime/config.mk -mozilla/mozilla/security/nss/lib/softoken/config.mk -mozilla/mozilla/security/nss/lib/softoken/legacydb/config.mk -mozilla/mozilla/security/nss/lib/sqlite/config.mk -mozilla/mozilla/security/nss/lib/ssl/config.mk -mozilla/mozilla/security/nss/lib/sysinit/config.mk -mozilla/mozilla/security/nss/lib/util/config.mk -mozilla/mozilla/security/nss/lib/zlib/config.mk -mozilla/mozilla/security/nss/tests/pkcs11/netscape/suites/config.mk -mozilla/mozilla/security/nss/tests/pkcs11/netscape/suites/security/config.mk -mozilla/mozilla/security/nss/tests/pkcs11/netscape/suites/security/pkcs11/config.mk -mozilla/mozilla/security/nss/tests/pkcs11/netscape/suites/security/ssl/config.mk -mozilla/mozilla/security/nss/tests/pkcs11/netscape/trivial/config.h.in -mozilla/mozilla/testing/tps/config/config.json.in -mozilla/mozilla/toolkit/components/viewconfig/content/config.js -mozilla/mozilla/toolkit/components/viewconfig/content/config.xul -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/locales/en-US/chrome/global/config.dtd -mozilla/mozilla/toolkit/locales/en-US/chrome/global/config.properties -mozilla/mozilla/toolkit/themes/pinstripe/global/config.css -mozilla/mozilla/toolkit/themes/winstripe/global/config.css -mozilla/mozilla/tools/jprof/stub/config.h -mozilla/mozilla/tools/leaky/config.h -mozilla/l10n/ar/toolkit/chrome/global/config.dtd -mozilla/l10n/ar/toolkit/chrome/global/config.properties -mozilla/l10n/ast/toolkit/chrome/global/config.dtd -mozilla/l10n/ast/toolkit/chrome/global/config.properties -mozilla/l10n/be/toolkit/chrome/global/config.dtd -mozilla/l10n/be/toolkit/chrome/global/config.properties -mozilla/l10n/bg/toolkit/chrome/global/config.dtd -mozilla/l10n/bg/toolkit/chrome/global/config.properties -mozilla/l10n/bn-BD/toolkit/chrome/global/config.dtd -mozilla/l10n/bn-BD/toolkit/chrome/global/config.properties -mozilla/l10n/br/toolkit/chrome/global/config.dtd -mozilla/l10n/br/toolkit/chrome/global/config.properties -mozilla/l10n/ca/toolkit/chrome/global/config.dtd -mozilla/l10n/ca/toolkit/chrome/global/config.properties -mozilla/l10n/cs/toolkit/chrome/global/config.dtd -mozilla/l10n/cs/toolkit/chrome/global/config.properties -mozilla/l10n/da/toolkit/chrome/global/config.dtd -mozilla/l10n/da/toolkit/chrome/global/config.properties -mozilla/l10n/de/toolkit/chrome/global/config.dtd -mozilla/l10n/de/toolkit/chrome/global/config.properties -mozilla/l10n/el/toolkit/chrome/global/config.dtd -mozilla/l10n/el/toolkit/chrome/global/config.properties -mozilla/l10n/en-GB/toolkit/chrome/global/config.dtd -mozilla/l10n/en-GB/toolkit/chrome/global/config.properties -mozilla/l10n/es-AR/toolkit/chrome/global/config.dtd -mozilla/l10n/es-AR/toolkit/chrome/global/config.properties -mozilla/l10n/es-ES/toolkit/chrome/global/config.dtd -mozilla/l10n/es-ES/toolkit/chrome/global/config.properties -mozilla/l10n/et/toolkit/chrome/global/config.dtd -mozilla/l10n/et/toolkit/chrome/global/config.properties -mozilla/l10n/eu/toolkit/chrome/global/config.dtd -mozilla/l10n/eu/toolkit/chrome/global/config.properties -mozilla/l10n/fi/toolkit/chrome/global/config.dtd -mozilla/l10n/fi/toolkit/chrome/global/config.properties -mozilla/l10n/fr/toolkit/chrome/global/config.dtd -mozilla/l10n/fr/toolkit/chrome/global/config.properties -mozilla/l10n/fy-NL/toolkit/chrome/global/config.dtd -mozilla/l10n/fy-NL/toolkit/chrome/global/config.properties -mozilla/l10n/ga-IE/toolkit/chrome/global/config.dtd -mozilla/l10n/ga-IE/toolkit/chrome/global/config.properties -mozilla/l10n/gd/toolkit/chrome/global/config.dtd -mozilla/l10n/gd/toolkit/chrome/global/config.properties -mozilla/l10n/gl/toolkit/chrome/global/config.dtd -mozilla/l10n/gl/toolkit/chrome/global/config.properties -mozilla/l10n/he/toolkit/chrome/global/config.dtd -mozilla/l10n/he/toolkit/chrome/global/config.properties -mozilla/l10n/hr/toolkit/chrome/global/config.dtd -mozilla/l10n/hr/toolkit/chrome/global/config.properties -mozilla/l10n/hu/toolkit/chrome/global/config.dtd -mozilla/l10n/hu/toolkit/chrome/global/config.properties -mozilla/l10n/hy-AM/toolkit/chrome/global/config.dtd -mozilla/l10n/hy-AM/toolkit/chrome/global/config.properties -mozilla/l10n/id/toolkit/chrome/global/config.dtd -mozilla/l10n/id/toolkit/chrome/global/config.properties -mozilla/l10n/is/toolkit/chrome/global/config.dtd -mozilla/l10n/is/toolkit/chrome/global/config.properties -mozilla/l10n/it/toolkit/chrome/global/config.dtd -mozilla/l10n/it/toolkit/chrome/global/config.properties -mozilla/l10n/ja/toolkit/chrome/global/config.dtd -mozilla/l10n/ja/toolkit/chrome/global/config.properties -mozilla/l10n/ja-JP-mac/toolkit/chrome/global/config.dtd -mozilla/l10n/ja-JP-mac/toolkit/chrome/global/config.properties -mozilla/l10n/ko/toolkit/chrome/global/config.dtd -mozilla/l10n/ko/toolkit/chrome/global/config.properties -mozilla/l10n/lt/toolkit/chrome/global/config.dtd -mozilla/l10n/lt/toolkit/chrome/global/config.properties -mozilla/l10n/nb-NO/toolkit/chrome/global/config.dtd -mozilla/l10n/nb-NO/toolkit/chrome/global/config.properties -mozilla/l10n/nl/toolkit/chrome/global/config.dtd -mozilla/l10n/nl/toolkit/chrome/global/config.properties -mozilla/l10n/nn-NO/toolkit/chrome/global/config.dtd -mozilla/l10n/nn-NO/toolkit/chrome/global/config.properties -mozilla/l10n/pa-IN/toolkit/chrome/global/config.dtd -mozilla/l10n/pa-IN/toolkit/chrome/global/config.properties -mozilla/l10n/pl/toolkit/chrome/global/config.dtd -mozilla/l10n/pl/toolkit/chrome/global/config.properties -mozilla/l10n/pt-BR/toolkit/chrome/global/config.dtd -mozilla/l10n/pt-BR/toolkit/chrome/global/config.properties -mozilla/l10n/pt-PT/toolkit/chrome/global/config.dtd -mozilla/l10n/pt-PT/toolkit/chrome/global/config.properties -mozilla/l10n/rm/toolkit/chrome/global/config.dtd -mozilla/l10n/rm/toolkit/chrome/global/config.properties -mozilla/l10n/ro/toolkit/chrome/global/config.dtd -mozilla/l10n/ro/toolkit/chrome/global/config.properties -mozilla/l10n/ru/toolkit/chrome/global/config.dtd -mozilla/l10n/ru/toolkit/chrome/global/config.properties -mozilla/l10n/si/toolkit/chrome/global/config.dtd -mozilla/l10n/si/toolkit/chrome/global/config.properties -mozilla/l10n/sk/toolkit/chrome/global/config.dtd -mozilla/l10n/sk/toolkit/chrome/global/config.properties -mozilla/l10n/sl/toolkit/chrome/global/config.dtd -mozilla/l10n/sl/toolkit/chrome/global/config.properties -mozilla/l10n/sq/toolkit/chrome/global/config.dtd -mozilla/l10n/sq/toolkit/chrome/global/config.properties -mozilla/l10n/sr/toolkit/chrome/global/config.dtd -mozilla/l10n/sr/toolkit/chrome/global/config.properties -mozilla/l10n/sv-SE/toolkit/chrome/global/config.dtd -mozilla/l10n/sv-SE/toolkit/chrome/global/config.properties -mozilla/l10n/ta-LK/toolkit/chrome/global/config.dtd -mozilla/l10n/ta-LK/toolkit/chrome/global/config.properties -mozilla/l10n/tr/toolkit/chrome/global/config.dtd -mozilla/l10n/tr/toolkit/chrome/global/config.properties -mozilla/l10n/uk/toolkit/chrome/global/config.dtd -mozilla/l10n/uk/toolkit/chrome/global/config.properties -mozilla/l10n/vi/toolkit/chrome/global/config.dtd -mozilla/l10n/vi/toolkit/chrome/global/config.properties -mozilla/l10n/zh-CN/toolkit/chrome/global/config.dtd -mozilla/l10n/zh-CN/toolkit/chrome/global/config.properties -mozilla/l10n/zh-TW/toolkit/chrome/global/config.dtd -mozilla/l10n/zh-TW/toolkit/chrome/global/config.properties Binary files /tmp/z9opqjApkJ/thunderbird-11.0~b5+build2/comm-release-11.0+build1-source.tar.bz2 and /tmp/q1jGTa2qKd/thunderbird-11.0+build1/comm-release-11.0+build1-source.tar.bz2 differ diff -Nru thunderbird-11.0~b5+build2/comm-release-11.0+build1-source.tar.bz2.cdbs-config_list thunderbird-11.0+build1/comm-release-11.0+build1-source.tar.bz2.cdbs-config_list --- thunderbird-11.0~b5+build2/comm-release-11.0+build1-source.tar.bz2.cdbs-config_list 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-11.0+build1/comm-release-11.0+build1-source.tar.bz2.cdbs-config_list 2012-03-13 20:27:37.000000000 +0000 @@ -0,0 +1,218 @@ +mozilla/build/autoconf/config.guess +mozilla/calendar/libical/config.h +mozilla/config/config.mk +mozilla/ldap/sdks/c-sdk/config/autoconf/config.guess +mozilla/ldap/sdks/c-sdk/config/autoconf/config.sub +mozilla/ldap/sdks/c-sdk/config/config.mk +mozilla/mail/test/mozmill/newmailaccount/html/config.xml +mozilla/suite/themes/modern/global/config.css +mozilla/mozilla/build/autoconf/config.guess +mozilla/mozilla/build/autoconf/config.sub +mozilla/mozilla/config/config.mk +mozilla/mozilla/extensions/irc/locales/en-US/chrome/config.dtd +mozilla/mozilla/extensions/irc/xul/content/ceip/config.js +mozilla/mozilla/extensions/irc/xul/content/ceip/config.xul +mozilla/mozilla/extensions/irc/xul/content/config.css +mozilla/mozilla/extensions/irc/xul/content/config.js +mozilla/mozilla/extensions/irc/xul/content/config.xul +mozilla/mozilla/ipc/chromium/src/third_party/libevent/config.guess +mozilla/mozilla/ipc/chromium/src/third_party/libevent/config.h.in +mozilla/mozilla/ipc/chromium/src/third_party/libevent/config.sub +mozilla/mozilla/ipc/chromium/src/third_party/libevent/linux/config.h +mozilla/mozilla/ipc/chromium/src/third_party/libevent/mac/config.h +mozilla/mozilla/js/src/build/autoconf/config.guess +mozilla/mozilla/js/src/build/autoconf/config.sub +mozilla/mozilla/js/src/config/config.mk +mozilla/mozilla/js/src/ctypes/libffi/config.guess +mozilla/mozilla/js/src/ctypes/libffi/config.sub +mozilla/mozilla/media/libtheora/lib/config.h +mozilla/mozilla/media/libvpx/vpx_ports/config.h +mozilla/mozilla/mobile/android/chrome/content/config.xhtml +mozilla/mozilla/mobile/android/locales/en-US/chrome/config.dtd +mozilla/mozilla/mobile/android/locales/en-US/chrome/config.properties +mozilla/mozilla/mobile/android/themes/core/config.css +mozilla/mozilla/mobile/xul/chrome/content/config.js +mozilla/mozilla/mobile/xul/chrome/content/config.xul +mozilla/mozilla/mobile/xul/locales/en-US/chrome/config.dtd +mozilla/mozilla/mobile/xul/themes/core/config.css +mozilla/mozilla/modules/freetype2/builds/unix/config.guess +mozilla/mozilla/modules/freetype2/builds/unix/config.sub +mozilla/mozilla/nsprpub/build/autoconf/config.guess +mozilla/mozilla/nsprpub/build/autoconf/config.sub +mozilla/mozilla/nsprpub/config/config.mk +mozilla/mozilla/security/coreconf/config.mk +mozilla/mozilla/security/dbm/config/config.mk +mozilla/mozilla/security/dbm/src/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/config.mk +mozilla/mozilla/security/nss/cmd/libpkix/testutil/config.mk +mozilla/mozilla/security/nss/lib/base/config.mk +mozilla/mozilla/security/nss/lib/certdb/config.mk +mozilla/mozilla/security/nss/lib/certhigh/config.mk +mozilla/mozilla/security/nss/lib/ckfw/builtins/config.mk +mozilla/mozilla/security/nss/lib/ckfw/capi/config.mk +mozilla/mozilla/security/nss/lib/ckfw/config.mk +mozilla/mozilla/security/nss/lib/ckfw/dbm/config.mk +mozilla/mozilla/security/nss/lib/ckfw/nssmkey/config.mk +mozilla/mozilla/security/nss/lib/crmf/config.mk +mozilla/mozilla/security/nss/lib/cryptohi/config.mk +mozilla/mozilla/security/nss/lib/dev/config.mk +mozilla/mozilla/security/nss/lib/freebl/config.mk +mozilla/mozilla/security/nss/lib/jar/config.mk +mozilla/mozilla/security/nss/lib/libpkix/config.mk +mozilla/mozilla/security/nss/lib/libpkix/include/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/certsel/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/checker/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/crlsel/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/params/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/results/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/store/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/top/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix/util/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix_pl_nss/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix_pl_nss/module/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix_pl_nss/pki/config.mk +mozilla/mozilla/security/nss/lib/libpkix/pkix_pl_nss/system/config.mk +mozilla/mozilla/security/nss/lib/nss/config.mk +mozilla/mozilla/security/nss/lib/pk11wrap/config.mk +mozilla/mozilla/security/nss/lib/pkcs12/config.mk +mozilla/mozilla/security/nss/lib/pkcs7/config.mk +mozilla/mozilla/security/nss/lib/pki/config.mk +mozilla/mozilla/security/nss/lib/smime/config.mk +mozilla/mozilla/security/nss/lib/softoken/config.mk +mozilla/mozilla/security/nss/lib/softoken/legacydb/config.mk +mozilla/mozilla/security/nss/lib/sqlite/config.mk +mozilla/mozilla/security/nss/lib/ssl/config.mk +mozilla/mozilla/security/nss/lib/sysinit/config.mk +mozilla/mozilla/security/nss/lib/util/config.mk +mozilla/mozilla/security/nss/lib/zlib/config.mk +mozilla/mozilla/security/nss/tests/pkcs11/netscape/suites/config.mk +mozilla/mozilla/security/nss/tests/pkcs11/netscape/suites/security/config.mk +mozilla/mozilla/security/nss/tests/pkcs11/netscape/suites/security/pkcs11/config.mk +mozilla/mozilla/security/nss/tests/pkcs11/netscape/suites/security/ssl/config.mk +mozilla/mozilla/security/nss/tests/pkcs11/netscape/trivial/config.h.in +mozilla/mozilla/testing/tps/config/config.json.in +mozilla/mozilla/toolkit/components/viewconfig/content/config.js +mozilla/mozilla/toolkit/components/viewconfig/content/config.xul +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/locales/en-US/chrome/global/config.dtd +mozilla/mozilla/toolkit/locales/en-US/chrome/global/config.properties +mozilla/mozilla/toolkit/themes/pinstripe/global/config.css +mozilla/mozilla/toolkit/themes/winstripe/global/config.css +mozilla/mozilla/tools/jprof/stub/config.h +mozilla/mozilla/tools/leaky/config.h +mozilla/l10n/ar/toolkit/chrome/global/config.dtd +mozilla/l10n/ar/toolkit/chrome/global/config.properties +mozilla/l10n/ast/toolkit/chrome/global/config.dtd +mozilla/l10n/ast/toolkit/chrome/global/config.properties +mozilla/l10n/be/toolkit/chrome/global/config.dtd +mozilla/l10n/be/toolkit/chrome/global/config.properties +mozilla/l10n/bg/toolkit/chrome/global/config.dtd +mozilla/l10n/bg/toolkit/chrome/global/config.properties +mozilla/l10n/bn-BD/toolkit/chrome/global/config.dtd +mozilla/l10n/bn-BD/toolkit/chrome/global/config.properties +mozilla/l10n/br/toolkit/chrome/global/config.dtd +mozilla/l10n/br/toolkit/chrome/global/config.properties +mozilla/l10n/ca/toolkit/chrome/global/config.dtd +mozilla/l10n/ca/toolkit/chrome/global/config.properties +mozilla/l10n/cs/toolkit/chrome/global/config.dtd +mozilla/l10n/cs/toolkit/chrome/global/config.properties +mozilla/l10n/da/toolkit/chrome/global/config.dtd +mozilla/l10n/da/toolkit/chrome/global/config.properties +mozilla/l10n/de/toolkit/chrome/global/config.dtd +mozilla/l10n/de/toolkit/chrome/global/config.properties +mozilla/l10n/el/toolkit/chrome/global/config.dtd +mozilla/l10n/el/toolkit/chrome/global/config.properties +mozilla/l10n/en-GB/toolkit/chrome/global/config.dtd +mozilla/l10n/en-GB/toolkit/chrome/global/config.properties +mozilla/l10n/es-AR/toolkit/chrome/global/config.dtd +mozilla/l10n/es-AR/toolkit/chrome/global/config.properties +mozilla/l10n/es-ES/toolkit/chrome/global/config.dtd +mozilla/l10n/es-ES/toolkit/chrome/global/config.properties +mozilla/l10n/et/toolkit/chrome/global/config.dtd +mozilla/l10n/et/toolkit/chrome/global/config.properties +mozilla/l10n/eu/toolkit/chrome/global/config.dtd +mozilla/l10n/eu/toolkit/chrome/global/config.properties +mozilla/l10n/fi/toolkit/chrome/global/config.dtd +mozilla/l10n/fi/toolkit/chrome/global/config.properties +mozilla/l10n/fr/toolkit/chrome/global/config.dtd +mozilla/l10n/fr/toolkit/chrome/global/config.properties +mozilla/l10n/fy-NL/toolkit/chrome/global/config.dtd +mozilla/l10n/fy-NL/toolkit/chrome/global/config.properties +mozilla/l10n/ga-IE/toolkit/chrome/global/config.dtd +mozilla/l10n/ga-IE/toolkit/chrome/global/config.properties +mozilla/l10n/gd/toolkit/chrome/global/config.dtd +mozilla/l10n/gd/toolkit/chrome/global/config.properties +mozilla/l10n/gl/toolkit/chrome/global/config.dtd +mozilla/l10n/gl/toolkit/chrome/global/config.properties +mozilla/l10n/he/toolkit/chrome/global/config.dtd +mozilla/l10n/he/toolkit/chrome/global/config.properties +mozilla/l10n/hr/toolkit/chrome/global/config.dtd +mozilla/l10n/hr/toolkit/chrome/global/config.properties +mozilla/l10n/hu/toolkit/chrome/global/config.dtd +mozilla/l10n/hu/toolkit/chrome/global/config.properties +mozilla/l10n/hy-AM/toolkit/chrome/global/config.dtd +mozilla/l10n/hy-AM/toolkit/chrome/global/config.properties +mozilla/l10n/id/toolkit/chrome/global/config.dtd +mozilla/l10n/id/toolkit/chrome/global/config.properties +mozilla/l10n/is/toolkit/chrome/global/config.dtd +mozilla/l10n/is/toolkit/chrome/global/config.properties +mozilla/l10n/it/toolkit/chrome/global/config.dtd +mozilla/l10n/it/toolkit/chrome/global/config.properties +mozilla/l10n/ja/toolkit/chrome/global/config.dtd +mozilla/l10n/ja/toolkit/chrome/global/config.properties +mozilla/l10n/ja-JP-mac/toolkit/chrome/global/config.dtd +mozilla/l10n/ja-JP-mac/toolkit/chrome/global/config.properties +mozilla/l10n/ko/toolkit/chrome/global/config.dtd +mozilla/l10n/ko/toolkit/chrome/global/config.properties +mozilla/l10n/lt/toolkit/chrome/global/config.dtd +mozilla/l10n/lt/toolkit/chrome/global/config.properties +mozilla/l10n/nb-NO/toolkit/chrome/global/config.dtd +mozilla/l10n/nb-NO/toolkit/chrome/global/config.properties +mozilla/l10n/nl/toolkit/chrome/global/config.dtd +mozilla/l10n/nl/toolkit/chrome/global/config.properties +mozilla/l10n/nn-NO/toolkit/chrome/global/config.dtd +mozilla/l10n/nn-NO/toolkit/chrome/global/config.properties +mozilla/l10n/pa-IN/toolkit/chrome/global/config.dtd +mozilla/l10n/pa-IN/toolkit/chrome/global/config.properties +mozilla/l10n/pl/toolkit/chrome/global/config.dtd +mozilla/l10n/pl/toolkit/chrome/global/config.properties +mozilla/l10n/pt-BR/toolkit/chrome/global/config.dtd +mozilla/l10n/pt-BR/toolkit/chrome/global/config.properties +mozilla/l10n/pt-PT/toolkit/chrome/global/config.dtd +mozilla/l10n/pt-PT/toolkit/chrome/global/config.properties +mozilla/l10n/rm/toolkit/chrome/global/config.dtd +mozilla/l10n/rm/toolkit/chrome/global/config.properties +mozilla/l10n/ro/toolkit/chrome/global/config.dtd +mozilla/l10n/ro/toolkit/chrome/global/config.properties +mozilla/l10n/ru/toolkit/chrome/global/config.dtd +mozilla/l10n/ru/toolkit/chrome/global/config.properties +mozilla/l10n/si/toolkit/chrome/global/config.dtd +mozilla/l10n/si/toolkit/chrome/global/config.properties +mozilla/l10n/sk/toolkit/chrome/global/config.dtd +mozilla/l10n/sk/toolkit/chrome/global/config.properties +mozilla/l10n/sl/toolkit/chrome/global/config.dtd +mozilla/l10n/sl/toolkit/chrome/global/config.properties +mozilla/l10n/sq/toolkit/chrome/global/config.dtd +mozilla/l10n/sq/toolkit/chrome/global/config.properties +mozilla/l10n/sr/toolkit/chrome/global/config.dtd +mozilla/l10n/sr/toolkit/chrome/global/config.properties +mozilla/l10n/sv-SE/toolkit/chrome/global/config.dtd +mozilla/l10n/sv-SE/toolkit/chrome/global/config.properties +mozilla/l10n/ta-LK/toolkit/chrome/global/config.dtd +mozilla/l10n/ta-LK/toolkit/chrome/global/config.properties +mozilla/l10n/tr/toolkit/chrome/global/config.dtd +mozilla/l10n/tr/toolkit/chrome/global/config.properties +mozilla/l10n/uk/toolkit/chrome/global/config.dtd +mozilla/l10n/uk/toolkit/chrome/global/config.properties +mozilla/l10n/vi/toolkit/chrome/global/config.dtd +mozilla/l10n/vi/toolkit/chrome/global/config.properties +mozilla/l10n/zh-CN/toolkit/chrome/global/config.dtd +mozilla/l10n/zh-CN/toolkit/chrome/global/config.properties +mozilla/l10n/zh-TW/toolkit/chrome/global/config.dtd +mozilla/l10n/zh-TW/toolkit/chrome/global/config.properties diff -Nru thunderbird-11.0~b5+build2/debian/changelog thunderbird-11.0+build1/debian/changelog --- thunderbird-11.0~b5+build2/debian/changelog 2012-03-13 20:25:49.000000000 +0000 +++ thunderbird-11.0+build1/debian/changelog 2012-03-13 20:27:37.000000000 +0000 @@ -1,3 +1,9 @@ +thunderbird (11.0+build1-0ubuntu1) precise; urgency=low + + * New upstream stable release (THUNDERBIRD_11_0_BUILD1) + + -- Chris Coulson Tue, 13 Mar 2012 20:05:20 +0000 + thunderbird (11.0~b5+build2-0ubuntu1) precise; urgency=low * New upstream release from the beta channel (THUNDERBIRD_11_0b5_BUILD2) @@ -122,6 +128,12 @@ -- Chris Coulson Fri, 03 Feb 2012 20:20:18 +0000 +thunderbird (10.0+build1-0ubuntu1) precise; urgency=low + + * New upstream stable release (THUNDERBIRD_10_0_BUILD1) + + -- Chris Coulson Mon, 30 Jan 2012 19:15:49 +0000 + thunderbird (10.0~b5+build1-0ubuntu1) precise; urgency=low * New upstream release from the beta channel (THUNDERBIRD_10_0b5_BUILD1) @@ -230,6 +242,12 @@ -- Chris Coulson Fri, 23 Dec 2011 02:31:48 +0000 +thunderbird (9.0+build2-0ubuntu1) UNRELEASED; urgency=low + + * New upstream stable release (THUNDERBIRD_9_0_BUILD2) + + -- Chris Coulson Mon, 19 Dec 2011 20:33:54 +0000 + thunderbird (9.0~b5+build1-0ubuntu1) precise; urgency=low * New upstream release from the beta channel (THUNDERBIRD_9_0b5_BUILD1) @@ -302,6 +320,12 @@ -- Chris Coulson Wed, 16 Nov 2011 11:17:57 +0000 +thunderbird (8.0+build1-0ubuntu1) precise; urgency=low + + * New upstream stable release (THUNDERBIRD_8_0_BUILD1) + + -- Chris Coulson Sun, 06 Nov 2011 23:09:15 +0000 + thunderbird (8.0~b5+build1-0ubuntu1) precise; urgency=low * New upstream release from the beta channel (THUNDERBIRD_8_0b5_BUILD1) @@ -850,6 +874,8 @@ - add debian/patches/stack-overflow-fix.patch - update debian/patches/series + -- Chris Coulson Fri, 08 Jul 2011 22:50:26 +0100 + thunderbird (5.0+build1+nobinonly-0ubuntu4) oneiric; urgency=low * Update globalmenu-extension to 1.7 diff -Nru thunderbird-11.0~b5+build2/debian/config/branch.mk thunderbird-11.0+build1/debian/config/branch.mk --- thunderbird-11.0~b5+build2/debian/config/branch.mk 2012-03-13 20:25:49.000000000 +0000 +++ thunderbird-11.0+build1/debian/config/branch.mk 2012-03-13 20:27:37.000000000 +0000 @@ -1,6 +1,6 @@ -CHANNEL = beta +CHANNEL = release MOZ_BUILD_UNOFFICIAL = 0 MOZ_ENABLE_BREAKPAD = 1 -COMM_REPO = http://hg.mozilla.org/releases/comm-beta -L10N_REPO = http://hg.mozilla.org/releases/l10n/mozilla-beta +COMM_REPO = http://hg.mozilla.org/releases/comm-release +L10N_REPO = http://hg.mozilla.org/releases/l10n/mozilla-release diff -Nru thunderbird-11.0~b5+build2/debian/control thunderbird-11.0+build1/debian/control --- thunderbird-11.0~b5+build2/debian/control 2012-03-13 20:25:49.000000000 +0000 +++ thunderbird-11.0+build1/debian/control 2012-03-13 20:27:37.000000000 +0000 @@ -2,7 +2,7 @@ Section: web Priority: optional Maintainer: Ubuntu Mozilla Team -Vcs-Bzr: https://code.launchpad.net/~mozillateam/thunderbird/thunderbird-beta.head +Vcs-Bzr: https://code.launchpad.net/~mozillateam/thunderbird/thunderbird.head Build-Depends: cdbs (>= 0.4.27), debhelper (>= 5), m4, diff -Nru thunderbird-11.0~b5+build2/debian/control.in thunderbird-11.0+build1/debian/control.in --- thunderbird-11.0~b5+build2/debian/control.in 2012-03-13 20:25:49.000000000 +0000 +++ thunderbird-11.0+build1/debian/control.in 2012-03-13 20:27:37.000000000 +0000 @@ -2,7 +2,7 @@ Section: web Priority: optional Maintainer: Ubuntu Mozilla Team -Vcs-Bzr: https://code.launchpad.net/~mozillateam/thunderbird/thunderbird-beta.head +Vcs-Bzr: https://code.launchpad.net/~mozillateam/thunderbird/thunderbird.head Build-Depends: cdbs (>= 0.4.27), debhelper (>= 5), m4, diff -Nru thunderbird-11.0~b5+build2/mozilla/calendar/locales/shipped-locales thunderbird-11.0+build1/mozilla/calendar/locales/shipped-locales --- thunderbird-11.0~b5+build2/mozilla/calendar/locales/shipped-locales 2012-03-09 09:42:24.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/calendar/locales/shipped-locales 2012-03-09 23:38:05.000000000 +0000 @@ -1,13 +1,19 @@ bg ca cs +da de en-GB es-AR es-ES +et eu +fi fr +fy-NL +ga-IE gd +gl he hr hu @@ -19,11 +25,16 @@ ko lt nb-NO +nl nn-NO +pa-IN pl +pt-PT ru sk sl +sq +tr uk zh-CN zh-TW diff -Nru thunderbird-11.0~b5+build2/mozilla/client.py thunderbird-11.0+build1/mozilla/client.py --- thunderbird-11.0~b5+build2/mozilla/client.py 2012-03-09 09:41:17.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/client.py 2012-03-09 23:38:06.000000000 +0000 @@ -28,7 +28,7 @@ 'VENKMAN_REV': 'a38583d7164a', # URL of the default hg repository to clone for Mozilla. - 'MOZILLA_REPO': 'http://hg.mozilla.org/releases/mozilla-beta/', + 'MOZILLA_REPO': 'http://hg.mozilla.org/releases/mozilla-release/', } REPO_SHORT_NAMES = { diff -Nru thunderbird-11.0~b5+build2/mozilla/l10n/changesets thunderbird-11.0+build1/mozilla/l10n/changesets --- thunderbird-11.0~b5+build2/mozilla/l10n/changesets 2012-03-09 10:42:02.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/l10n/changesets 2012-03-10 00:30:07.000000000 +0000 @@ -1,55 +1,55 @@ -ar 480:74712ca69803 -ast 340:f9182a23c2c3 -be 503:2f50b329ae18 -bg 234:8047cf18d35b -bn-BD 213:aea143a6623a -br 276:92fb0dfe1c09 -ca 876:169032924896 -cs 1239:ece7c5aea8f2 -da 491:a0d382f95e6a -de 2481:2265860b1f81 -el 458:800384c5ddb1 -en-GB 400:7f0db4387fb2 -es-AR 936:2cc2da27c4cd -es-ES 1303:3d74e8c7ee17 -et 602:7dc047bb6548 -eu 432:9e2815aff43a -fi 601:2df18a1cafb8 -fr 2815:222a9739d1db -fy-NL 916:af80c73590d1 -ga-IE 513:db672720b3a6 -gd 458:c3ec6c73dc56 -gl 471:7650c6c74b75 -he 547:f92f2ef50b72 -hr 653:b74ee07be34a -hu 499:567bbf8fb46d -hy-AM 214:7e084c42ddbe -id 558:fca9a2e78db7 -is 342:d1e86f2a0260 -it 1497:29ed90336f57 -ja 549:d29aa97ccdcc -ja-JP-mac 466:668b9be04bcd -ko 588:286719b193d2 -lt 1223:69d812191b52 -nb-NO 1024:cf34da199196 -nl 2179:d54777643f4f -nn-NO 611:0c17c1a09f74 -pa-IN 579:3c3ad5c40be3 -pl 2762:0b1996b2c152 -pt-BR 637:021d73c52f58 -pt-PT 1437:a996a6613d1f -rm 371:a79b80c0ddfe -ro 454:fd40dc0f5421 -ru 1341:c269a0c787c6 -si 475:08a9300a1f3d -sk 558:e35645702cec -sl 509:1495b4bc1eda -sq 717:6cdb348d9699 -sr 211:7569bcddbdce -sv-SE 1642:18085235ccbe -ta-LK 256:d5800ee8bf3d -tr 565:01cf5d5ef5f5 -uk 919:e82070043c5c -vi 252:5029a465f27e -zh-CN 717:37360dd51931 -zh-TW 675:eb1fb448f542 +ar 601:fde35f1badb8 +ast 403:8e0996649c03 +be 648:64d83e272660 +bg 319:f3d27f9697b0 +bn-BD 304:37533be4b74f +br 367:aaf3aea68922 +ca 1029:02f13f8fc5c8 +cs 1388:1f91deaac3db +da 610:3a80980e4d5d +de 2628:60a278af86f4 +el 563:2a3b536c25ae +en-GB 517:4c8e40cb10b8 +es-AR 1081:b9718f596cac +es-ES 1450:b5ce402b308a +et 721:4b67147d1b6e +eu 551:630b7b6dd8d6 +fi 748:a408799e09bf +fr 2966:1b006755f0ea +fy-NL 1035:34d43db5cd8f +ga-IE 618:e4da99609b48 +gd 575:b7d00c6321ed +gl 612:a30ecf70fd30 +he 634:e36eface9258 +hr 693:6a39fe932262 +hu 616:cdd7ec7f8048 +hy-AM 257:5d45e621355e +id 673:be1579d010ed +is 431:48eb4e5aee7a +it 1644:3716e030c6c7 +ja 696:a41817602f9d +ja-JP-mac 583:9c30434daa4d +ko 707:a9a610415c33 +lt 1370:9b9abb9bb1b8 +nb-NO 1167:9d327a171b43 +nl 2322:82385d74e0f0 +nn-NO 696:06decd192f4f +pa-IN 684:973366ccf2f5 +pl 2905:44c68326bd31 +pt-BR 746:e73ac88649ce +pt-PT 1578:4f0d1e9097ed +rm 452:a7ed95ed930d +ro 527:88d0f059a7fd +ru 1578:08f4f0852e3b +si 556:f054aedf9f4e +sk 699:ab3c2d0e5538 +sl 594:36f88ffd3be3 +sq 830:5174e4bd9025 +sr 270:9651dfc0e88a +sv-SE 1757:8f72d1fe24b8 +ta-LK 337:7e5a468381d1 +tr 674:fe7a3b01b5d3 +uk 1028:7ccad3753390 +vi 335:3efb99cc85f6 +zh-CN 854:b7ffbd68d82d +zh-TW 788:ff9d591b46cd diff -Nru thunderbird-11.0~b5+build2/mozilla/l10n/ru/mail/chrome/messenger/messengercompose/composeMsgs.properties thunderbird-11.0+build1/mozilla/l10n/ru/mail/chrome/messenger/messengercompose/composeMsgs.properties --- thunderbird-11.0~b5+build2/mozilla/l10n/ru/mail/chrome/messenger/messengercompose/composeMsgs.properties 2012-03-09 10:37:14.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/l10n/ru/mail/chrome/messenger/messengercompose/composeMsgs.properties 2012-03-10 00:25:15.000000000 +0000 @@ -139,7 +139,7 @@ sendMessageCheckWindowTitle = Отправка сообщения sendMessageCheckLabel = Вы действительно готовы отправить это сообщение? sendMessageCheckSendButtonLabel = Отправить -mailnews.reply_header_authorwrote = %s пишет +mailnews.reply_header_authorwrote = %s написал mailnews.reply_header_ondate = %s mailnews.reply_header_originalmessage = -------- Исходное сообщение -------- renameAttachmentTitle = Переименование вложения diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/browser/locales/shipped-locales thunderbird-11.0+build1/mozilla/mozilla/browser/locales/shipped-locales --- thunderbird-11.0~b5+build2/mozilla/mozilla/browser/locales/shipped-locales 2012-03-09 10:07:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/browser/locales/shipped-locales 2012-03-09 23:59:00.000000000 +0000 @@ -55,7 +55,6 @@ mai mk ml -mn mr nb-NO nl @@ -76,7 +75,6 @@ sq sr sv-SE -sw ta ta-LK te diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/mobile/android/config/mozconfigs/android/release thunderbird-11.0+build1/mozilla/mozilla/mobile/android/config/mozconfigs/android/release --- thunderbird-11.0~b5+build2/mozilla/mozilla/mobile/android/config/mozconfigs/android/release 2012-03-09 10:13:45.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/mobile/android/config/mozconfigs/android/release 2012-03-10 00:02:58.000000000 +0000 @@ -14,10 +14,10 @@ ac_add_options --with-android-platform=/tools/android-ndk-r5c/platforms/android-5/arch-arm ac_add_options --with-system-zlib ac_add_options --enable-updater -ac_add_options --enable-update-channel=beta +ac_add_options --enable-update-channel=release export JAVA_HOME=/tools/jdk6 export MOZILLA_OFFICIAL=1 ac_add_options --enable-official-branding -ac_add_options --with-branding=mobile/android/branding/beta +ac_add_options --with-branding=mobile/android/branding/official diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/mobile/xul/config/mozconfigs/android/release thunderbird-11.0+build1/mozilla/mozilla/mobile/xul/config/mozconfigs/android/release --- thunderbird-11.0~b5+build2/mozilla/mozilla/mobile/xul/config/mozconfigs/android/release 2012-03-09 10:13:48.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/mobile/xul/config/mozconfigs/android/release 2012-03-10 00:03:01.000000000 +0000 @@ -14,10 +14,10 @@ ac_add_options --with-android-platform=/tools/android-ndk-r5c/platforms/android-5/arch-arm ac_add_options --with-system-zlib ac_add_options --enable-updater -ac_add_options --enable-update-channel=beta +ac_add_options --enable-update-channel=release export JAVA_HOME=/tools/jdk6 export MOZILLA_OFFICIAL=1 ac_add_options --enable-official-branding -ac_add_options --with-branding=mobile/xul/branding/beta +ac_add_options --with-branding=mobile/xul/branding/official diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/content/aboutSupport.js thunderbird-11.0+build1/mozilla/mozilla/toolkit/content/aboutSupport.js --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/content/aboutSupport.js 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/content/aboutSupport.js 2012-03-10 00:03:51.000000000 +0000 @@ -249,8 +249,8 @@ if (gfxInfo) { let trGraphics = []; pushInfoRow(trGraphics, "adapterDescription", gfxInfo.adapterDescription); - pushInfoRow(trGraphics, "adapterVendorID", gfxInfo.adapterVendorID); - pushInfoRow(trGraphics, "adapterDeviceID", gfxInfo.adapterDeviceID); + pushInfoRow(trGraphics, "adapterVendorID", hexValueToString(gfxInfo.adapterVendorID)); + pushInfoRow(trGraphics, "adapterDeviceID", hexValueToString(gfxInfo.adapterDeviceID)); pushInfoRow(trGraphics, "adapterRAM", gfxInfo.adapterRAM); pushInfoRow(trGraphics, "adapterDrivers", gfxInfo.adapterDriver); pushInfoRow(trGraphics, "driverVersion", gfxInfo.adapterDriverVersion); @@ -258,8 +258,8 @@ #ifdef XP_WIN pushInfoRow(trGraphics, "adapterDescription2", gfxInfo.adapterDescription2); - pushInfoRow(trGraphics, "adapterVendorID2", gfxInfo.adapterVendorID2); - pushInfoRow(trGraphics, "adapterDeviceID2", gfxInfo.adapterDeviceID2); + pushInfoRow(trGraphics, "adapterVendorID2", hexValueToString(gfxInfo.adapterVendorID2)); + pushInfoRow(trGraphics, "adapterDeviceID2", hexValueToString(gfxInfo.adapterDeviceID2)); pushInfoRow(trGraphics, "adapterRAM2", gfxInfo.adapterRAM2); pushInfoRow(trGraphics, "adapterDrivers2", gfxInfo.adapterDriver2); pushInfoRow(trGraphics, "driverVersion2", gfxInfo.adapterDriverVersion2); diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/data/test_gfxBlacklist.xml thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/data/test_gfxBlacklist.xml --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/data/test_gfxBlacklist.xml 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/data/test_gfxBlacklist.xml 2012-03-10 00:04:03.000000000 +0000 @@ -54,65 +54,5 @@ 8.52.322.1111 EQUAL - - Darwin 9 - 0xabcd - - 0x2783 - 0x1234 - 0x2782 - - DIRECT2D - BLOCKED_DRIVER_VERSION - - - Linux - 0xabcd - - 0x2783 - 0x1234 - 0x2782 - - DIRECT2D - BLOCKED_DRIVER_VERSION - - - Android - abcd - - wxyz - asdf - erty - - DIRECT2D - BLOCKED_DRIVER_VERSION - 5 - LESS_THAN_OR_EQUAL - - - Android - dcdc - - uiop - vbnm - hjkl - - DIRECT2D - BLOCKED_DRIVER_VERSION - 5 - EQUAL - - - Android - abab - - ghjk - cvbn - - DIRECT2D - BLOCKED_DRIVER_VERSION - 7 - GREATER_THAN_OR_EQUAL - diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_AllOS1.js thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_AllOS1.js --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_AllOS1.js 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_AllOS1.js 2012-03-10 00:04:04.000000000 +0000 @@ -0,0 +1,72 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +// Make sure that a blacklist entry with an OS of "All" matches Windows 7, as +// long as the rest of the blacklist matches it. +// Uses test_gfxBlacklist_AllOS.xml + +do_load_httpd_js(); + +var gTestserver = null; + +function load_blocklist(file) { + Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:4444/data/" + file); + var blocklist = Cc["@mozilla.org/extensions/blocklist;1"]. + getService(Ci.nsITimerCallback); + blocklist.notify(null); +} + +// Performs the initial setup +function run_test() { + try { + var gfxInfo = Cc["@mozilla.org/gfx/info;1"].getService(Ci.nsIGfxInfo); + } catch (e) { + do_test_finished(); + return; + } + + // We can't do anything if we can't spoof the stuff we need. + if (!(gfxInfo instanceof Ci.nsIGfxInfoDebug)) { + do_test_finished(); + return; + } + + gfxInfo.QueryInterface(Ci.nsIGfxInfoDebug); + + // Set the vendor/device ID, etc, to match the test file. + gfxInfo.spoofVendorID(0xabcd); + gfxInfo.spoofDeviceID(0x1234); + gfxInfo.spoofDriverVersion("8.52.322.2201"); + // Windows 7 + gfxInfo.spoofOSVersion(0x60001); + + createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8"); + startupManager(); + + gTestserver = new nsHttpServer(); + gTestserver.registerDirectory("/data/", do_get_file("data")); + gTestserver.start(4444); + + do_test_pending(); + + function checkBlacklist() + { + var status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_DIRECT2D); + do_check_eq(status, Ci.nsIGfxInfo.FEATURE_BLOCKED_DRIVER_VERSION); + + // Make sure unrelated features aren't affected + status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_DIRECT3D_9_LAYERS); + do_check_eq(status, Ci.nsIGfxInfo.FEATURE_NO_INFO); + + gTestserver.stop(do_test_finished); + } + + Services.obs.addObserver(function(aSubject, aTopic, aData) { + // If we wait until after we go through the event loop, gfxInfo is sure to + // have processed the gfxItems event. + do_execute_soon(checkBlacklist); + }, "blocklist-data-gfxItems", false); + + load_blocklist("test_gfxBlacklist_AllOS.xml"); +} diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_AllOS2.js thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_AllOS2.js --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_AllOS2.js 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_AllOS2.js 2012-03-10 00:04:04.000000000 +0000 @@ -0,0 +1,72 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +// Make sure that a blacklist entry with an OS of "All" matches Windows Vista, +// as long as the rest of the blacklist matches it. +// Uses test_gfxBlacklist_AllOS.xml + +do_load_httpd_js(); + +var gTestserver = null; + +function load_blocklist(file) { + Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:4444/data/" + file); + var blocklist = Cc["@mozilla.org/extensions/blocklist;1"]. + getService(Ci.nsITimerCallback); + blocklist.notify(null); +} + +// Performs the initial setup +function run_test() { + try { + var gfxInfo = Cc["@mozilla.org/gfx/info;1"].getService(Ci.nsIGfxInfo); + } catch (e) { + do_test_finished(); + return; + } + + // We can't do anything if we can't spoof the stuff we need. + if (!(gfxInfo instanceof Ci.nsIGfxInfoDebug)) { + do_test_finished(); + return; + } + + gfxInfo.QueryInterface(Ci.nsIGfxInfoDebug); + + // Set the vendor/device ID, etc, to match the test file. + gfxInfo.spoofVendorID(0xabcd); + gfxInfo.spoofDeviceID(0x1234); + gfxInfo.spoofDriverVersion("8.52.322.2201"); + // Windows Vista + gfxInfo.spoofOSVersion(0x60000); + + createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8"); + startupManager(); + + gTestserver = new nsHttpServer(); + gTestserver.registerDirectory("/data/", do_get_file("data")); + gTestserver.start(4444); + + do_test_pending(); + + function checkBlacklist() + { + var status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_DIRECT2D); + do_check_eq(status, Ci.nsIGfxInfo.FEATURE_BLOCKED_DRIVER_VERSION); + + // Make sure unrelated features aren't affected + status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_DIRECT3D_9_LAYERS); + do_check_eq(status, Ci.nsIGfxInfo.FEATURE_NO_INFO); + + gTestserver.stop(do_test_finished); + } + + Services.obs.addObserver(function(aSubject, aTopic, aData) { + // If we wait until after we go through the event loop, gfxInfo is sure to + // have processed the gfxItems event. + do_execute_soon(checkBlacklist); + }, "blocklist-data-gfxItems", false); + + load_blocklist("test_gfxBlacklist_AllOS.xml"); +} diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Device.js thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Device.js --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Device.js 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Device.js 2012-03-10 00:04:04.000000000 +0000 @@ -10,12 +10,6 @@ var gTestserver = null; -function get_platform() { - var xulRuntime = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULRuntime); - return xulRuntime.OS; -} - function load_blocklist(file) { Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:4444/data/" + file); var blocklist = Cc["@mozilla.org/extensions/blocklist;1"]. @@ -41,29 +35,11 @@ gfxInfo.QueryInterface(Ci.nsIGfxInfoDebug); // Set the vendor/device ID, etc, to match the test file. - switch (get_platform()) { - case "WINNT": - gfxInfo.spoofVendorID("0xabcd"); - gfxInfo.spoofDeviceID("0x9876"); - gfxInfo.spoofDriverVersion("8.52.322.2201"); - // Windows 7 - gfxInfo.spoofOSVersion(0x60001); - break; - case "Linux": - gfxInfo.spoofVendorID("0xabcd"); - gfxInfo.spoofDeviceID("0x9876"); - break; - case "Darwin": - gfxInfo.spoofVendorID("0xabcd"); - gfxInfo.spoofDeviceID("0x9876"); - gfxInfo.spoofOSVersion(0x1050); - break; - case "Android": - gfxInfo.spoofVendorID("abcd"); - gfxInfo.spoofDeviceID("aabb"); - gfxInfo.spoofDriverVersion("5"); - break; - } + gfxInfo.spoofVendorID(0xabcd); + gfxInfo.spoofDeviceID(0x9876); + gfxInfo.spoofDriverVersion("8.52.322.2201"); + // Windows 7 + gfxInfo.spoofOSVersion(0x60001); createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8"); startupManager(); diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_DriverNew.js thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_DriverNew.js --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_DriverNew.js 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_DriverNew.js 2012-03-10 00:04:04.000000000 +0000 @@ -10,12 +10,6 @@ var gTestserver = null; -function get_platform() { - var xulRuntime = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULRuntime); - return xulRuntime.OS; -} - function load_blocklist(file) { Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:4444/data/" + file); var blocklist = Cc["@mozilla.org/extensions/blocklist;1"]. @@ -41,28 +35,11 @@ gfxInfo.QueryInterface(Ci.nsIGfxInfoDebug); // Set the vendor/device ID, etc, to match the test file. - switch (get_platform()) { - case "WINNT": - gfxInfo.spoofVendorID("0xabcd"); - gfxInfo.spoofDeviceID("0x1234"); - gfxInfo.spoofDriverVersion("8.52.322.2202"); - // Windows 7 - gfxInfo.spoofOSVersion(0x60001); - break; - case "Linux": - // We don't support driver versions on Linux. - do_test_finished(); - return; - case "Darwin": - // We don't support driver versions on Darwin. - do_test_finished(); - return; - case "Android": - gfxInfo.spoofVendorID("abcd"); - gfxInfo.spoofDeviceID("wxyz"); - gfxInfo.spoofDriverVersion("6"); - break; - } + gfxInfo.spoofVendorID(0xabcd); + gfxInfo.spoofDeviceID(0x1234); + gfxInfo.spoofDriverVersion("8.52.322.2202"); + // Windows 7 + gfxInfo.spoofOSVersion(0x60001); createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8"); startupManager(); diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_DriverNew.js thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_DriverNew.js --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_DriverNew.js 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_DriverNew.js 2012-03-10 00:04:04.000000000 +0000 @@ -10,12 +10,6 @@ var gTestserver = null; -function get_platform() { - var xulRuntime = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULRuntime); - return xulRuntime.OS; -} - function load_blocklist(file) { Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:4444/data/" + file); var blocklist = Cc["@mozilla.org/extensions/blocklist;1"]. @@ -41,28 +35,11 @@ gfxInfo.QueryInterface(Ci.nsIGfxInfoDebug); // Set the vendor/device ID, etc, to match the test file. - switch (get_platform()) { - case "WINNT": - gfxInfo.spoofVendorID("0xdcdc"); - gfxInfo.spoofDeviceID("0x1234"); - gfxInfo.spoofDriverVersion("8.52.322.1112"); - // Windows 7 - gfxInfo.spoofOSVersion(0x60001); - break; - case "Linux": - // We don't support driver versions on Linux. - do_test_finished(); - return; - case "Darwin": - // We don't support driver versions on Darwin. - do_test_finished(); - return; - case "Android": - gfxInfo.spoofVendorID("dcdc"); - gfxInfo.spoofDeviceID("uiop"); - gfxInfo.spoofDriverVersion("6"); - break; - } + gfxInfo.spoofVendorID(0xdcdc); + gfxInfo.spoofDeviceID(0x1234); + gfxInfo.spoofDriverVersion("8.52.322.1112"); + // Windows 7 + gfxInfo.spoofOSVersion(0x60001); createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8"); startupManager(); diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_DriverOld.js thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_DriverOld.js --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_DriverOld.js 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_DriverOld.js 2012-03-10 00:04:04.000000000 +0000 @@ -10,12 +10,6 @@ var gTestserver = null; -function get_platform() { - var xulRuntime = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULRuntime); - return xulRuntime.OS; -} - function load_blocklist(file) { Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:4444/data/" + file); var blocklist = Cc["@mozilla.org/extensions/blocklist;1"]. @@ -41,28 +35,11 @@ gfxInfo.QueryInterface(Ci.nsIGfxInfoDebug); // Set the vendor/device ID, etc, to match the test file. - switch (get_platform()) { - case "WINNT": - gfxInfo.spoofVendorID("0xdcdc"); - gfxInfo.spoofDeviceID("0x1234"); - gfxInfo.spoofDriverVersion("8.52.322.1110"); - // Windows 7 - gfxInfo.spoofOSVersion(0x60001); - break; - case "Linux": - // We don't support driver versions on Linux. - do_test_finished(); - return; - case "Darwin": - // We don't support driver versions on Darwin. - do_test_finished(); - return; - case "Android": - gfxInfo.spoofVendorID("dcdc"); - gfxInfo.spoofDeviceID("uiop"); - gfxInfo.spoofDriverVersion("4"); - break; - } + gfxInfo.spoofVendorID(0xdcdc); + gfxInfo.spoofDeviceID(0x1234); + gfxInfo.spoofDriverVersion("8.52.322.1110"); + // Windows 7 + gfxInfo.spoofOSVersion(0x60001); createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8"); startupManager(); diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_OK.js thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_OK.js --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_OK.js 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Equal_OK.js 2012-03-10 00:04:04.000000000 +0000 @@ -10,12 +10,6 @@ var gTestserver = null; -function get_platform() { - var xulRuntime = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULRuntime); - return xulRuntime.OS; -} - function load_blocklist(file) { Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:4444/data/" + file); var blocklist = Cc["@mozilla.org/extensions/blocklist;1"]. @@ -41,28 +35,11 @@ gfxInfo.QueryInterface(Ci.nsIGfxInfoDebug); // Set the vendor/device ID, etc, to match the test file. - switch (get_platform()) { - case "WINNT": - gfxInfo.spoofVendorID("0xdcdc"); - gfxInfo.spoofDeviceID("0x1234"); - gfxInfo.spoofDriverVersion("8.52.322.1111"); - // Windows 7 - gfxInfo.spoofOSVersion(0x60001); - break; - case "Linux": - // We don't support driver versions on Linux. - do_test_finished(); - return; - case "Darwin": - // We don't support driver versions on Darwin. - do_test_finished(); - return; - case "Android": - gfxInfo.spoofVendorID("dcdc"); - gfxInfo.spoofDeviceID("uiop"); - gfxInfo.spoofDriverVersion("5"); - break; - } + gfxInfo.spoofVendorID(0xdcdc); + gfxInfo.spoofDeviceID(0x1234); + gfxInfo.spoofDriverVersion("8.52.322.1111"); + // Windows 7 + gfxInfo.spoofOSVersion(0x60001); createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8"); startupManager(); diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_GTE_DriverOld.js thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_GTE_DriverOld.js --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_GTE_DriverOld.js 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_GTE_DriverOld.js 2012-03-10 00:04:04.000000000 +0000 @@ -10,12 +10,6 @@ var gTestserver = null; -function get_platform() { - var xulRuntime = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULRuntime); - return xulRuntime.OS; -} - function load_blocklist(file) { Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:4444/data/" + file); var blocklist = Cc["@mozilla.org/extensions/blocklist;1"]. @@ -41,28 +35,11 @@ gfxInfo.QueryInterface(Ci.nsIGfxInfoDebug); // Set the vendor/device ID, etc, to match the test file. - switch (get_platform()) { - case "WINNT": - gfxInfo.spoofVendorID("0xabab"); - gfxInfo.spoofDeviceID("0x1234"); - gfxInfo.spoofDriverVersion("8.52.322.2201"); - // Windows 7 - gfxInfo.spoofOSVersion(0x60001); - break; - case "Linux": - // We don't support driver versions on Linux. - do_test_finished(); - return; - case "Darwin": - // We don't support driver versions on Darwin. - do_test_finished(); - return; - case "Android": - gfxInfo.spoofVendorID("abab"); - gfxInfo.spoofDeviceID("ghjk"); - gfxInfo.spoofDriverVersion("6"); - break; - } + gfxInfo.spoofVendorID(0xabab); + gfxInfo.spoofDeviceID(0x1234); + gfxInfo.spoofDriverVersion("8.52.322.2201"); + // Windows 7 + gfxInfo.spoofOSVersion(0x60001); createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8"); startupManager(); diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_GTE_OK.js thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_GTE_OK.js --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_GTE_OK.js 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_GTE_OK.js 2012-03-10 00:04:04.000000000 +0000 @@ -10,12 +10,6 @@ var gTestserver = null; -function get_platform() { - var xulRuntime = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULRuntime); - return xulRuntime.OS; -} - function load_blocklist(file) { Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:4444/data/" + file); var blocklist = Cc["@mozilla.org/extensions/blocklist;1"]. @@ -41,28 +35,11 @@ gfxInfo.QueryInterface(Ci.nsIGfxInfoDebug); // Set the vendor/device ID, etc, to match the test file. - switch (get_platform()) { - case "WINNT": - gfxInfo.spoofVendorID("0xabab"); - gfxInfo.spoofDeviceID("0x1234"); - gfxInfo.spoofDriverVersion("8.52.322.2202"); - // Windows 7 - gfxInfo.spoofOSVersion(0x60001); - break; - case "Linux": - // We don't support driver versions on Linux. - do_test_finished(); - return; - case "Darwin": - // We don't support driver versions on Darwin. - do_test_finished(); - return; - case "Android": - gfxInfo.spoofVendorID("abab"); - gfxInfo.spoofDeviceID("ghjk"); - gfxInfo.spoofDriverVersion("7"); - break; - } + gfxInfo.spoofVendorID(0xabab); + gfxInfo.spoofDeviceID(0x1234); + gfxInfo.spoofDriverVersion("8.52.322.2202"); + // Windows 7 + gfxInfo.spoofOSVersion(0x60001); createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8"); startupManager(); diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OK.js thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OK.js --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OK.js 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OK.js 2012-03-10 00:04:04.000000000 +0000 @@ -10,12 +10,6 @@ var gTestserver = null; -function get_platform() { - var xulRuntime = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULRuntime); - return xulRuntime.OS; -} - function load_blocklist(file) { Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:4444/data/" + file); var blocklist = Cc["@mozilla.org/extensions/blocklist;1"]. @@ -41,29 +35,11 @@ gfxInfo.QueryInterface(Ci.nsIGfxInfoDebug); // Set the vendor/device ID, etc, to match the test file. - switch (get_platform()) { - case "WINNT": - gfxInfo.spoofVendorID("0xabcd"); - gfxInfo.spoofDeviceID("0x1234"); - gfxInfo.spoofDriverVersion("8.52.322.2201"); - // Windows 7 - gfxInfo.spoofOSVersion(0x60001); - break; - case "Linux": - gfxInfo.spoofVendorID("0xabcd"); - gfxInfo.spoofDeviceID("0x1234"); - break; - case "Darwin": - gfxInfo.spoofVendorID("0xabcd"); - gfxInfo.spoofDeviceID("0x1234"); - gfxInfo.spoofOSVersion(0x1050); - break; - case "Android": - gfxInfo.spoofVendorID("abcd"); - gfxInfo.spoofDeviceID("asdf"); - gfxInfo.spoofDriverVersion("5"); - break; - } + gfxInfo.spoofVendorID(0xabcd); + gfxInfo.spoofDeviceID(0x1234); + gfxInfo.spoofDriverVersion("8.52.322.2201"); + // Windows 7 + gfxInfo.spoofOSVersion(0x60001); createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8"); startupManager(); diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OS.js thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OS.js --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OS.js 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_OS.js 2012-03-10 00:04:04.000000000 +0000 @@ -10,12 +10,6 @@ var gTestserver = null; -function get_platform() { - var xulRuntime = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULRuntime); - return xulRuntime.OS; -} - function load_blocklist(file) { Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:4444/data/" + file); var blocklist = Cc["@mozilla.org/extensions/blocklist;1"]. @@ -41,30 +35,11 @@ gfxInfo.QueryInterface(Ci.nsIGfxInfoDebug); // Set the vendor/device ID, etc, to match the test file. - switch (get_platform()) { - case "WINNT": - gfxInfo.spoofVendorID("0xabcd"); - gfxInfo.spoofDeviceID("0x1234"); - gfxInfo.spoofDriverVersion("8.52.322.2201"); - // Windows Vista - gfxInfo.spoofOSVersion(0x60000); - break; - case "Linux": - // We don't have any OS versions on Linux, just "Linux". - do_test_finished(); - return; - case "Darwin": - gfxInfo.spoofVendorID("0xabcd"); - gfxInfo.spoofDeviceID("0x1234"); - // Snow Leopard - gfxInfo.spoofOSVersion(0x1060); - break; - case "Android": - // On Android, the driver version is used as the OS version (because - // there's so many of them). - do_test_finished(); - return; - } + gfxInfo.spoofVendorID(0xabcd); + gfxInfo.spoofDeviceID(0x1234); + gfxInfo.spoofDriverVersion("8.52.322.2201"); + // Windows Vista + gfxInfo.spoofOSVersion(0x60000); createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8"); startupManager(); diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_prefs.js thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_prefs.js --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_prefs.js 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_prefs.js 2012-03-10 00:04:04.000000000 +0000 @@ -10,12 +10,6 @@ var gTestserver = null; -function get_platform() { - var xulRuntime = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULRuntime); - return xulRuntime.OS; -} - function load_blocklist(file) { Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:4444/data/" + file); var blocklist = Cc["@mozilla.org/extensions/blocklist;1"]. @@ -41,29 +35,11 @@ gfxInfo.QueryInterface(Ci.nsIGfxInfoDebug); // Set the vendor/device ID, etc, to match the test file. - switch (get_platform()) { - case "WINNT": - gfxInfo.spoofVendorID("0xabcd"); - gfxInfo.spoofDeviceID("0x1234"); - gfxInfo.spoofDriverVersion("8.52.322.2201"); - // Windows 7 - gfxInfo.spoofOSVersion(0x60001); - break; - case "Linux": - gfxInfo.spoofVendorID("0xabcd"); - gfxInfo.spoofDeviceID("0x1234"); - break; - case "Darwin": - gfxInfo.spoofVendorID("0xabcd"); - gfxInfo.spoofDeviceID("0x1234"); - gfxInfo.spoofOSVersion(0x1050); - break; - case "Android": - gfxInfo.spoofVendorID("abcd"); - gfxInfo.spoofDeviceID("asdf"); - gfxInfo.spoofDriverVersion("5"); - break; - } + gfxInfo.spoofVendorID(0xabcd); + gfxInfo.spoofDeviceID(0x1234); + gfxInfo.spoofDriverVersion("8.52.322.2201"); + // Windows 7 + gfxInfo.spoofOSVersion(0x60001); createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8"); startupManager(); diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Vendor.js thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Vendor.js --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Vendor.js 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/test_gfxBlacklist_Vendor.js 2012-03-10 00:04:04.000000000 +0000 @@ -10,12 +10,6 @@ var gTestserver = null; -function get_platform() { - var xulRuntime = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULRuntime); - return xulRuntime.OS; -} - function load_blocklist(file) { Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:4444/data/" + file); var blocklist = Cc["@mozilla.org/extensions/blocklist;1"]. @@ -41,29 +35,11 @@ gfxInfo.QueryInterface(Ci.nsIGfxInfoDebug); // Set the vendor/device ID, etc, to match the test file. - switch (get_platform()) { - case "WINNT": - gfxInfo.spoofVendorID("0xdcba"); - gfxInfo.spoofDeviceID("0x1234"); - gfxInfo.spoofDriverVersion("8.52.322.2201"); - // Windows 7 - gfxInfo.spoofOSVersion(0x60001); - break; - case "Linux": - gfxInfo.spoofVendorID("0xdcba"); - gfxInfo.spoofDeviceID("0x1234"); - break; - case "Darwin": - gfxInfo.spoofVendorID("0xdcba"); - gfxInfo.spoofDeviceID("0x1234"); - gfxInfo.spoofOSVersion(0x1050); - break; - case "Android": - gfxInfo.spoofVendorID("dcba"); - gfxInfo.spoofDeviceID("asdf"); - gfxInfo.spoofDriverVersion("5"); - break; - } + gfxInfo.spoofVendorID(0xdcba); + gfxInfo.spoofDeviceID(0x1234); + gfxInfo.spoofDriverVersion("8.52.322.2201"); + // Windows 7 + gfxInfo.spoofOSVersion(0x60001); createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8"); startupManager(); diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini --- thunderbird-11.0~b5+build2/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini 2012-03-10 00:04:04.000000000 +0000 @@ -150,6 +150,8 @@ [test_fuel.js] [test_general.js] [test_getresource.js] +[test_gfxBlacklist_AllOS1.js] +[test_gfxBlacklist_AllOS2.js] [test_gfxBlacklist_Device.js] [test_gfxBlacklist_DriverNew.js] [test_gfxBlacklist_Equal_DriverNew.js] diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/widget/public/nsIGfxInfoDebug.idl thunderbird-11.0+build1/mozilla/mozilla/widget/public/nsIGfxInfoDebug.idl --- thunderbird-11.0~b5+build2/mozilla/mozilla/widget/public/nsIGfxInfoDebug.idl 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/widget/public/nsIGfxInfoDebug.idl 2012-03-10 00:04:14.000000000 +0000 @@ -39,11 +39,11 @@ /* NOTE: this interface is only implemented in debug builds */ -[scriptable, uuid(ca7b0bc7-c67c-4b79-8270-ed7ba002af08)] +[scriptable, uuid(0c19c88a-9ef1-4bb4-b0a2-86ab768e8bd6)] interface nsIGfxInfoDebug : nsISupports { - void spoofVendorID(in DOMString aVendorID); - void spoofDeviceID(in DOMString aDeviceID); + void spoofVendorID(in unsigned long aVendorID); + void spoofDeviceID(in unsigned long aDeviceID); void spoofDriverVersion(in DOMString aDriverVersion); diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/widget/public/nsIGfxInfo.idl thunderbird-11.0+build1/mozilla/mozilla/widget/public/nsIGfxInfo.idl --- thunderbird-11.0~b5+build2/mozilla/mozilla/widget/public/nsIGfxInfo.idl 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/widget/public/nsIGfxInfo.idl 2012-03-10 00:04:14.000000000 +0000 @@ -64,11 +64,11 @@ readonly attribute DOMString adapterDriver2; /* These types are inspired by DXGI_ADAPTER_DESC */ - readonly attribute DOMString adapterVendorID; - readonly attribute DOMString adapterVendorID2; + readonly attribute unsigned long adapterVendorID; + readonly attribute unsigned long adapterVendorID2; - readonly attribute DOMString adapterDeviceID; - readonly attribute DOMString adapterDeviceID2; + readonly attribute unsigned long adapterDeviceID; + readonly attribute unsigned long adapterDeviceID2; /** * The amount of RAM in MB in the display adapter. diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/android/GfxInfo.cpp thunderbird-11.0+build1/mozilla/mozilla/widget/src/android/GfxInfo.cpp --- thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/android/GfxInfo.cpp 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/widget/src/android/GfxInfo.cpp 2012-03-10 00:04:15.000000000 +0000 @@ -51,10 +51,6 @@ using namespace mozilla::widget; -#ifdef DEBUG -NS_IMPL_ISUPPORTS_INHERITED1(GfxInfo, GfxInfoBase, nsIGfxInfoDebug) -#endif - /* GetD2DEnabled and GetDwriteEnabled shouldn't be called until after gfxPlatform initialization * has occurred because they depend on it for information. (See bug 591561) */ nsresult @@ -92,42 +88,7 @@ nsresult GfxInfo::Init() { - mAdapterDescription.AssignASCII(mozilla::gl::GetVendor()); - if (mozilla::AndroidBridge::Bridge()) { - nsAutoString str; - - mAdapterDescription.Append(NS_LITERAL_STRING(", Model: '")); - if (mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "MODEL", str)) { - mAdapterDeviceID = str; - mAdapterDescription.Append(str); - } - - mAdapterDescription.Append(NS_LITERAL_STRING("', Product: '")); - if (mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "PRODUCT", str)) - mAdapterDescription.Append(str); - - mAdapterDescription.Append(NS_LITERAL_STRING("', Manufacturer: '")); - if (mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "MANUFACTURER", str)) - mAdapterDescription.Append(str); - - mAdapterDescription.Append(NS_LITERAL_STRING("', Hardware: '")); - PRInt32 version; // the HARDWARE field isn't available on Android SDK < 8 - if (!mozilla::AndroidBridge::Bridge()->GetStaticIntField("android/os/Build$VERSION", "SDK_INT", &version)) - version = 0; - - if (version >= 8 && mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "HARDWARE", str)) { - if (mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "HARDWARE", str)) { - mAdapterVendorID = str; - mAdapterDescription.Append(str); - } - } - - mAdapterDescription.Append(NS_LITERAL_STRING("'")); - mAndroidSDKVersion = version; - } - - AddOpenGLCrashReportAnnotations(); - + mSetCrashReportAnnotations = false; return GfxInfoBase::Init(); } @@ -135,7 +96,28 @@ NS_IMETHODIMP GfxInfo::GetAdapterDescription(nsAString & aAdapterDescription) { - aAdapterDescription = mAdapterDescription; + aAdapterDescription.AssignASCII(mozilla::gl::GetVendor()); + if (mozilla::AndroidBridge::Bridge()) { + nsAutoString str; + aAdapterDescription.Append(NS_LITERAL_STRING(", Model: '")); + if (mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "MODEL", str)) + aAdapterDescription.Append(str); + aAdapterDescription.Append(NS_LITERAL_STRING("', Product: '")); + if (mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "PRODUCT", str)) + aAdapterDescription.Append(str); + aAdapterDescription.Append(NS_LITERAL_STRING("', Manufacturer: '")); + if (mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "MANUFACTURER", str)) + aAdapterDescription.Append(str); + aAdapterDescription.Append(NS_LITERAL_STRING("', Hardware: '")); + PRInt32 version; // the HARDWARE field isn't available on Android SDK < 8 + if (!mozilla::AndroidBridge::Bridge()->GetStaticIntField("android/os/Build$VERSION", "SDK_INT", &version)) + version = 0; + if (version >= 8 && mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "HARDWARE", str)) + if (mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "HARDWARE", str)) + aAdapterDescription.Append(str); + aAdapterDescription.Append(NS_LITERAL_STRING("'")); + } + return NS_OK; } @@ -180,8 +162,7 @@ NS_IMETHODIMP GfxInfo::GetAdapterDriverVersion(nsAString & aAdapterDriverVersion) { - aAdapterDriverVersion.Truncate(0); - aAdapterDriverVersion.AppendInt(mAndroidSDKVersion); + aAdapterDriverVersion.AssignLiteral(""); return NS_OK; } @@ -207,32 +188,47 @@ return NS_ERROR_FAILURE; } -/* readonly attribute DOMString adapterVendorID; */ +/* readonly attribute unsigned long adapterVendorID; */ NS_IMETHODIMP -GfxInfo::GetAdapterVendorID(nsAString & aAdapterVendorID) +GfxInfo::GetAdapterVendorID(PRUint32 *aAdapterVendorID) { - aAdapterVendorID = mAdapterVendorID; + nsAutoString str; + PRInt32 version; // the HARDWARE field isn't available on Android SDK < 8 + if (!mozilla::AndroidBridge::Bridge()->GetStaticIntField("android/os/Build$VERSION", "SDK_INT", &version)) + version = 0; + if (version >= 8 && mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "HARDWARE", str)) { + *aAdapterVendorID = HashString(str); + return NS_OK; + } + + *aAdapterVendorID = 0; return NS_OK; } -/* readonly attribute DOMString adapterVendorID2; */ +/* readonly attribute unsigned long adapterVendorID2; */ NS_IMETHODIMP -GfxInfo::GetAdapterVendorID2(nsAString & aAdapterVendorID) +GfxInfo::GetAdapterVendorID2(PRUint32 *aAdapterVendorID) { return NS_ERROR_FAILURE; } -/* readonly attribute DOMString adapterDeviceID; */ +/* readonly attribute unsigned long adapterDeviceID; */ NS_IMETHODIMP -GfxInfo::GetAdapterDeviceID(nsAString & aAdapterDeviceID) +GfxInfo::GetAdapterDeviceID(PRUint32 *aAdapterDeviceID) { - aAdapterDeviceID = mAdapterDeviceID; + nsAutoString str; + if (mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "MODEL", str)) { + *aAdapterDeviceID = HashString(str); + return NS_OK; + } + + *aAdapterDeviceID = 0; return NS_OK; } -/* readonly attribute DOMString adapterDeviceID2; */ +/* readonly attribute unsigned long adapterDeviceID2; */ NS_IMETHODIMP -GfxInfo::GetAdapterDeviceID2(nsAString & aAdapterDeviceID) +GfxInfo::GetAdapterDeviceID2(PRUint32 *aAdapterDeviceID) { return NS_ERROR_FAILURE; } @@ -248,30 +244,29 @@ GfxInfo::AddOpenGLCrashReportAnnotations() { #if defined(MOZ_CRASHREPORTER) - nsAutoString adapterDescriptionString, deviceID, vendorID; - nsCAutoString narrowDeviceID, narrowVendorID; + nsCAutoString deviceIDString, vendorIDString; + nsAutoString adapterDescriptionString; + PRUint32 deviceID, vendorID; - GetAdapterDeviceID(deviceID); - GetAdapterVendorID(vendorID); + GetAdapterDeviceID(&deviceID); + GetAdapterVendorID(&vendorID); GetAdapterDescription(adapterDescriptionString); - narrowDeviceID = NS_ConvertUTF16toUTF8(deviceID); - narrowVendorID = NS_ConvertUTF16toUTF8(vendorID); + deviceIDString.AppendPrintf("%04x", deviceID); + vendorIDString.AppendPrintf("%04x", vendorID); CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("AdapterVendorID"), - narrowVendorID); + vendorIDString); CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("AdapterDeviceID"), - narrowDeviceID); + deviceIDString); /* Add an App Note for now so that we get the data immediately. These * can go away after we store the above in the socorro db */ nsCAutoString note; /* AppendPrintf only supports 32 character strings, mrghh. */ - note.Append("AdapterVendorID: "); - note.Append(narrowVendorID); - note.Append(", AdapterDeviceID: "); - note.Append(narrowDeviceID); - note.Append(".\n"); + note.AppendPrintf("AdapterVendorID: %04x, ", vendorID); + note.AppendPrintf("AdapterDeviceID: %04x.", deviceID); + note.Append("\n"); note.AppendPrintf("AdapterDescription: '%s'.", NS_ConvertUTF16toUTF8(adapterDescriptionString).get()); note.Append("\n"); @@ -282,19 +277,10 @@ const nsTArray& GfxInfo::GetGfxDriverInfo() { - if (!mDriverInfo->Length()) { - /* The following entry, when uncommented, will allow us to whitelist a - * specific device. See the long comment in GetFeatureStatusImpl for more - * info. */ - // APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_ALL, - // my_vendor_id, my_device_id, - // nsIGfxInfo::FEATURE_OPENGL_LAYERS, nsIGfxInfo::FEATURE_NO_INFO, - // DRIVER_LESS_THAN, GfxDriverInfo::allDevices ); - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorAll), GfxDriverInfo::allDevices, - nsIGfxInfo::FEATURE_OPENGL_LAYERS, nsIGfxInfo::FEATURE_BLOCKED_DEVICE, - DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions ); - } + // Nothing here yet. + //if (!mDriverInfo->Length()) { + // + //} return *mDriverInfo; } @@ -305,64 +291,47 @@ const nsTArray& aDriverInfo, OperatingSystem* aOS /* = nsnull */) { - NS_ENSURE_ARG_POINTER(aStatus); + PRInt32 status = nsIGfxInfo::FEATURE_STATUS_UNKNOWN; + aSuggestedDriverVersion.SetIsVoid(true); - *aStatus = nsIGfxInfo::FEATURE_STATUS_UNKNOWN; - OperatingSystem os = DRIVER_OS_ANDROID; - if (aOS) - *aOS = os; - // Don't evaluate special cases when evaluating the downlaoded blocklist. - if (!aDriverInfo.Length()) { - if (aFeature == FEATURE_OPENGL_LAYERS) { - /* The following code is an old way to whitelist devices when we're ready. - * It is staying here for reference. The best way to do this now is to add - * an entry in the list above. There is a dummy entry which will whitelist a - * device when uncommented and device/vendor IDs are inserted. It is - * preferred that we stop whitelisting and instead go to blocklisting, where - * everything is assumed to be okay as long as it's not in the blocklist. */ - // nsAutoString str; - // /* Whitelist Galaxy S phones */ - // if (mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "HARDWARE", str)) { - // if (str != NS_LITERAL_STRING("smdkc110")) { - // status = FEATURE_BLOCKED_DEVICE; - // } - // } - } + // For now, we don't implement the downloaded blacklist. + if (aDriverInfo.Length()) { + *aStatus = nsIGfxInfo::FEATURE_NO_INFO; + return NS_OK; } - return GfxInfoBase::GetFeatureStatusImpl(aFeature, aStatus, aSuggestedDriverVersion, aDriverInfo, &os); -} - -#ifdef DEBUG + OperatingSystem os = DRIVER_OS_ANDROID; -// Implement nsIGfxInfoDebug + if (aFeature == FEATURE_OPENGL_LAYERS) { + if (!mSetCrashReportAnnotations) { + AddOpenGLCrashReportAnnotations(); + mSetCrashReportAnnotations = true; + } -/* void spoofVendorID (in DOMString aVendorID); */ -NS_IMETHODIMP GfxInfo::SpoofVendorID(const nsAString & aVendorID) -{ - mAdapterVendorID = aVendorID; - return NS_OK; -} + /* XXX: Use this code when we're ready to whitelist devices. */ + // nsAutoString str; + // /* Whitelist Galaxy S phones */ + // if (mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "HARDWARE", str)) { + // if (str != NS_LITERAL_STRING("smdkc110")) { + // status = FEATURE_BLOCKED_DEVICE; + // } + // } -/* void spoofDeviceID (in unsigned long aDeviceID); */ -NS_IMETHODIMP GfxInfo::SpoofDeviceID(const nsAString & aDeviceID) -{ - mAdapterDeviceID = aDeviceID; - return NS_OK; -} + status = FEATURE_BLOCKED_DEVICE; + } -/* void spoofDriverVersion (in DOMString aDriverVersion); */ -NS_IMETHODIMP GfxInfo::SpoofDriverVersion(const nsAString & aDriverVersion) -{ - mDriverVersion = aDriverVersion; - return NS_OK; -} + *aStatus = status; + if (aOS) + *aOS = os; -/* void spoofOSVersion (in unsigned long aVersion); */ -NS_IMETHODIMP GfxInfo::SpoofOSVersion(PRUint32 aVersion) -{ + // XXX disabled for now as this calls GetAdapterVendorID and friends, which currently crash on Android, see bug 700124 + // FIXME: if this gets fixed, the line setting *aStatus must be removed +#if 0 + return GfxInfoBase::GetFeatureStatusImpl(aFeature, aStatus, aSuggestedDriverVersion, aDriverInfo, &os); +#else + if (status == nsIGfxInfo::FEATURE_STATUS_UNKNOWN) + *aStatus = nsIGfxInfo::FEATURE_NO_INFO; +#endif return NS_OK; } - -#endif diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/android/GfxInfo.h thunderbird-11.0+build1/mozilla/mozilla/widget/src/android/GfxInfo.h --- thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/android/GfxInfo.h 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/widget/src/android/GfxInfo.h 2012-03-10 00:04:15.000000000 +0000 @@ -41,7 +41,6 @@ #define __mozilla_widget_GfxInfo_h__ #include "GfxInfoBase.h" -#include "GfxDriverInfo.h" #include "nsString.h" @@ -60,15 +59,15 @@ NS_SCRIPTABLE NS_IMETHOD GetCleartypeParameters(nsAString & aCleartypeParams); NS_SCRIPTABLE NS_IMETHOD GetAdapterDescription(nsAString & aAdapterDescription); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriver(nsAString & aAdapterDriver); - NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID(nsAString & aAdapterVendorID); - NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID(nsAString & aAdapterDeviceID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID(PRUint32 *aAdapterVendorID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID(PRUint32 *aAdapterDeviceID); NS_SCRIPTABLE NS_IMETHOD GetAdapterRAM(nsAString & aAdapterRAM); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverVersion(nsAString & aAdapterDriverVersion); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverDate(nsAString & aAdapterDriverDate); NS_SCRIPTABLE NS_IMETHOD GetAdapterDescription2(nsAString & aAdapterDescription); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriver2(nsAString & aAdapterDriver); - NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID2(nsAString & aAdapterVendorID); - NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID2(nsAString & aAdapterDeviceID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID2(PRUint32 *aAdapterVendorID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID2(PRUint32 *aAdapterDeviceID); NS_SCRIPTABLE NS_IMETHOD GetAdapterRAM2(nsAString & aAdapterRAM); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverVersion2(nsAString & aAdapterDriverVersion); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverDate2(nsAString & aAdapterDriverDate); @@ -79,11 +78,6 @@ virtual nsresult Init(); -#ifdef DEBUG - NS_DECL_ISUPPORTS_INHERITED - NS_DECL_NSIGFXINFODEBUG -#endif - protected: virtual nsresult GetFeatureStatusImpl(PRInt32 aFeature, @@ -96,6 +90,7 @@ private: void AddOpenGLCrashReportAnnotations(); + bool mSetCrashReportAnnotations; nsString mRendererIDsString; nsString mAdapterRAMString; @@ -104,11 +99,6 @@ nsString mDriverDate; nsString mDeviceKey; - nsString mAdapterDeviceID; - nsString mAdapterVendorID; - nsString mAdapterDescription; - PRInt32 mAndroidSDKVersion; - PRUint32 mRendererIDs[16]; }; diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/cocoa/GfxInfo.h thunderbird-11.0+build1/mozilla/mozilla/widget/src/cocoa/GfxInfo.h --- thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/cocoa/GfxInfo.h 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/widget/src/cocoa/GfxInfo.h 2012-03-10 00:04:15.000000000 +0000 @@ -61,31 +61,25 @@ NS_SCRIPTABLE NS_IMETHOD GetCleartypeParameters(nsAString & aCleartypeParams); NS_SCRIPTABLE NS_IMETHOD GetAdapterDescription(nsAString & aAdapterDescription); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriver(nsAString & aAdapterDriver); - NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID(nsAString & aAdapterVendorID); - NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID(nsAString & aAdapterDeviceID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID(PRUint32 *aAdapterVendorID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID(PRUint32 *aAdapterDeviceID); NS_SCRIPTABLE NS_IMETHOD GetAdapterRAM(nsAString & aAdapterRAM); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverVersion(nsAString & aAdapterDriverVersion); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverDate(nsAString & aAdapterDriverDate); NS_SCRIPTABLE NS_IMETHOD GetAdapterDescription2(nsAString & aAdapterDescription); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriver2(nsAString & aAdapterDriver); - NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID2(nsAString & aAdapterVendorID); - NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID2(nsAString & aAdapterDeviceID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID2(PRUint32 *aAdapterVendorID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID2(PRUint32 *aAdapterDeviceID); NS_SCRIPTABLE NS_IMETHOD GetAdapterRAM2(nsAString & aAdapterRAM); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverVersion2(nsAString & aAdapterDriverVersion); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverDate2(nsAString & aAdapterDriverDate); NS_SCRIPTABLE NS_IMETHOD GetIsGPU2Active(bool *aIsGPU2Active); - using GfxInfoBase::GetFeatureStatus; using GfxInfoBase::GetFeatureSuggestedDriverVersion; using GfxInfoBase::GetWebGLParameter; virtual nsresult Init(); -#ifdef DEBUG - NS_DECL_ISUPPORTS_INHERITED - NS_DECL_NSIGFXINFODEBUG -#endif - protected: virtual nsresult GetFeatureStatusImpl(PRInt32 aFeature, @@ -107,8 +101,8 @@ nsString mDriverDate; nsString mDeviceKey; - nsString mAdapterVendorID; - nsString mAdapterDeviceID; + PRUint32 mAdapterVendorID; + PRUint32 mAdapterDeviceID; PRUint32 mRendererIDs[16]; diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/cocoa/GfxInfo.mm thunderbird-11.0+build1/mozilla/mozilla/widget/src/cocoa/GfxInfo.mm --- thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/cocoa/GfxInfo.mm 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/widget/src/cocoa/GfxInfo.mm 2012-03-10 00:04:15.000000000 +0000 @@ -67,28 +67,12 @@ using namespace mozilla; using namespace mozilla::widget; -#ifdef DEBUG -NS_IMPL_ISUPPORTS_INHERITED1(GfxInfo, GfxInfoBase, nsIGfxInfoDebug) -#endif - GfxInfo::GfxInfo() + : mAdapterVendorID(0), + mAdapterDeviceID(0) { } -static OperatingSystem -OSXVersionToOperatingSystem(PRUint32 aOSXVersion) -{ - switch (aOSXVersion & MAC_OS_X_VERSION_MAJOR_MASK) { - case MAC_OS_X_VERSION_10_5_HEX: - return DRIVER_OS_OS_X_10_5; - case MAC_OS_X_VERSION_10_6_HEX: - return DRIVER_OS_OS_X_10_6; - case MAC_OS_X_VERSION_10_7_HEX: - return DRIVER_OS_OS_X_10_7; - } - - return DRIVER_OS_UNKNOWN; -} // The following three functions are derived from Chromium code static CFTypeRef SearchPortForProperty(io_registry_entry_t dspPort, CFStringRef propertyName) @@ -120,16 +104,30 @@ io_registry_entry_t dsp_port = CGDisplayIOServicePort(kCGDirectMainDisplay); CFTypeRef vendor_id_ref = SearchPortForProperty(dsp_port, CFSTR("vendor-id")); if (vendor_id_ref) { - mAdapterVendorID.AppendPrintf("0x%4x", IntValueOfCFData((CFDataRef)vendor_id_ref)); + mAdapterVendorID = IntValueOfCFData((CFDataRef)vendor_id_ref); CFRelease(vendor_id_ref); } CFTypeRef device_id_ref = SearchPortForProperty(dsp_port, CFSTR("device-id")); if (device_id_ref) { - mAdapterDeviceID.AppendPrintf("0x%4x", IntValueOfCFData((CFDataRef)device_id_ref)); + mAdapterDeviceID = IntValueOfCFData((CFDataRef)device_id_ref); CFRelease(device_id_ref); } } +static bool +IsATIRadeonX1000(PRUint32 aVendorID, PRUint32 aDeviceID) +{ + if (aVendorID == 0x1002) { + // this list is from the ATIRadeonX1000.kext Info.plist + PRUint32 devices[] = {0x7187, 0x7210, 0x71DE, 0x7146, 0x7142, 0x7109, 0x71C5, 0x71C0, 0x7240, 0x7249, 0x7291}; + for (size_t i = 0; i < ArrayLength(devices); i++) { + if (aDeviceID == devices[i]) + return true; + } + } + return false; +} + nsresult GfxInfo::Init() { @@ -176,8 +174,6 @@ AddCrashReportAnnotations(); - mOSXVersion = nsToolkit::OSXVersion(); - return rv; } @@ -296,32 +292,32 @@ return NS_ERROR_FAILURE; } -/* readonly attribute DOMString adapterVendorID; */ +/* readonly attribute unsigned long adapterVendorID; */ NS_IMETHODIMP -GfxInfo::GetAdapterVendorID(nsAString & aAdapterVendorID) +GfxInfo::GetAdapterVendorID(PRUint32 *aAdapterVendorID) { - aAdapterVendorID = mAdapterVendorID; + *aAdapterVendorID = mAdapterVendorID; return NS_OK; } -/* readonly attribute DOMString adapterVendorID2; */ +/* readonly attribute unsigned long adapterVendorID2; */ NS_IMETHODIMP -GfxInfo::GetAdapterVendorID2(nsAString & aAdapterVendorID) +GfxInfo::GetAdapterVendorID2(PRUint32 *aAdapterVendorID) { return NS_ERROR_FAILURE; } -/* readonly attribute DOMString adapterDeviceID; */ +/* readonly attribute unsigned long adapterDeviceID; */ NS_IMETHODIMP -GfxInfo::GetAdapterDeviceID(nsAString & aAdapterDeviceID) +GfxInfo::GetAdapterDeviceID(PRUint32 *aAdapterDeviceID) { - aAdapterDeviceID = mAdapterDeviceID; + *aAdapterDeviceID = mAdapterDeviceID; return NS_OK; } -/* readonly attribute DOMString adapterDeviceID2; */ +/* readonly attribute unsigned long adapterDeviceID2; */ NS_IMETHODIMP -GfxInfo::GetAdapterDeviceID2(nsAString & aAdapterDeviceID) +GfxInfo::GetAdapterDeviceID2(PRUint32 *aAdapterDeviceID) { return NS_ERROR_FAILURE; } @@ -337,26 +333,25 @@ GfxInfo::AddCrashReportAnnotations() { #if defined(MOZ_CRASHREPORTER) - nsString deviceID, vendorID; - nsCAutoString narrowDeviceID, narrowVendorID; + nsCAutoString deviceIDString, vendorIDString; + PRUint32 deviceID, vendorID; + + GetAdapterDeviceID(&deviceID); + GetAdapterVendorID(&vendorID); - GetAdapterDeviceID(deviceID); - CopyUTF16toUTF8(deviceID, narrowDeviceID); - GetAdapterVendorID(vendorID); - CopyUTF16toUTF8(vendorID, narrowVendorID); + deviceIDString.AppendPrintf("%04x", deviceID); + vendorIDString.AppendPrintf("%04x", vendorID); CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("AdapterVendorID"), - narrowVendorID); + vendorIDString); CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("AdapterDeviceID"), - narrowDeviceID); + deviceIDString); /* Add an App Note for now so that we get the data immediately. These * can go away after we store the above in the socorro db */ nsCAutoString note; /* AppendPrintf only supports 32 character strings, mrghh. */ - note.Append("AdapterVendorID: "); - note.Append(narrowVendorID); - note.Append(", AdapterDeviceID: "); - note.Append(narrowDeviceID); + note.AppendPrintf("AdapterVendorID: %04x, ", vendorID); + note.AppendPrintf("AdapterDeviceID: %04x", deviceID); CrashReporter::AppendAppNotesToCrashReport(note); #endif } @@ -372,18 +367,27 @@ { if (!mDriverInfo->Length()) { IMPLEMENT_MAC_DRIVER_BLOCKLIST(DRIVER_OS_ALL, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, + GfxDriverInfo::vendorATI, GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBGL_MSAA, nsIGfxInfo::FEATURE_BLOCKED_OS_VERSION); - IMPLEMENT_MAC_DRIVER_BLOCKLIST(DRIVER_OS_ALL, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorATI), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(RadeonX1000), - nsIGfxInfo::FEATURE_OPENGL_LAYERS, nsIGfxInfo::FEATURE_BLOCKED_DEVICE); - IMPLEMENT_MAC_DRIVER_BLOCKLIST(DRIVER_OS_ALL, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(Geforce7300GT), - nsIGfxInfo::FEATURE_WEBGL_OPENGL, nsIGfxInfo::FEATURE_BLOCKED_DEVICE); } return *mDriverInfo; } +static OperatingSystem +OSXVersionToOperatingSystem(PRUint32 aOSXVersion) +{ + switch (aOSXVersion & MAC_OS_X_VERSION_MAJOR_MASK) { + case MAC_OS_X_VERSION_10_5_HEX: + return DRIVER_OS_OS_X_10_5; + case MAC_OS_X_VERSION_10_6_HEX: + return DRIVER_OS_OS_X_10_6; + case MAC_OS_X_VERSION_10_7_HEX: + return DRIVER_OS_OS_X_10_7; + } + + return DRIVER_OS_UNKNOWN; +} + nsresult GfxInfo::GetFeatureStatusImpl(PRInt32 aFeature, PRInt32* aStatus, @@ -392,106 +396,95 @@ OperatingSystem* aOS /* = nsnull */) { NS_ENSURE_ARG_POINTER(aStatus); + aSuggestedDriverVersion.SetIsVoid(true); - *aStatus = nsIGfxInfo::FEATURE_STATUS_UNKNOWN; - OperatingSystem os = OSXVersionToOperatingSystem(mOSXVersion); - if (aOS) - *aOS = os; - // Don't evaluate special cases when we're evaluating the downloaded blocklist. - if (!aDriverInfo.Length()) { - // Many WebGL issues on 10.5, especially: - // * bug 631258: WebGL shader paints using textures belonging to other processes on Mac OS 10.5 - // * bug 618848: Post process shaders and texture mapping crash OS X 10.5 - if (aFeature == nsIGfxInfo::FEATURE_WEBGL_OPENGL && - !nsToolkit::OnSnowLeopardOrLater()) { - *aStatus = nsIGfxInfo::FEATURE_BLOCKED_OS_VERSION; - return NS_OK; + PRInt32 status = nsIGfxInfo::FEATURE_STATUS_UNKNOWN; + + OperatingSystem os = OSXVersionToOperatingSystem(nsToolkit::OSXVersion()); + + // Many WebGL issues on 10.5, especially: + // * bug 631258: WebGL shader paints using textures belonging to other processes on Mac OS 10.5 + // * bug 618848: Post process shaders and texture mapping crash OS X 10.5 + if (aFeature == nsIGfxInfo::FEATURE_WEBGL_OPENGL && + !nsToolkit::OnSnowLeopardOrLater()) + { + status = nsIGfxInfo::FEATURE_BLOCKED_OS_VERSION; + } + + if (aFeature == nsIGfxInfo::FEATURE_OPENGL_LAYERS) { + bool foundGoodDevice = false; + + if (!IsATIRadeonX1000(mAdapterVendorID, mAdapterDeviceID)) { + foundGoodDevice = true; } - // The code around the following has been moved into the global blocklist. #if 0 - // CGL reports a list of renderers, some renderers are slow (e.g. software) - // and AFAIK we can't decide which one will be used among them, so let's implement this by returning NO_INFO - // if any not-known-to-be-bad renderer is found. - // The assumption that we make here is that the system will spontaneously use the best/fastest renderer in the list. - // Note that the presence of software renderer fallbacks means that slow software rendering may be automatically - // used, which seems to be the case in bug 611292 where the user had a Intel GMA 945 card (non programmable hardware). - // Therefore we need to explicitly blacklist non-OpenGL2 hardware, which could result in a software renderer - // being used. - - for (PRUint32 i = 0; i < ArrayLength(mRendererIDs); ++i) { - switch (mRendererIDs[i]) { - case kCGLRendererATIRage128ID: // non-programmable - case kCGLRendererATIRadeonID: // non-programmable - case kCGLRendererATIRageProID: // non-programmable - case kCGLRendererATIRadeon8500ID: // no OpenGL 2 support, http://en.wikipedia.org/wiki/Radeon_R200 - case kCGLRendererATIRadeon9700ID: // no OpenGL 2 support, http://en.wikipedia.org/wiki/Radeon_R200 - case kCGLRendererATIRadeonX1000ID: // can't render to non-power-of-two texture backed framebuffers - case kCGLRendererIntel900ID: // non-programmable - case kCGLRendererGeForce2MXID: // non-programmable - case kCGLRendererGeForce3ID: // no OpenGL 2 support, - // http://en.wikipedia.org/wiki/Comparison_of_Nvidia_graphics_processing_units - case kCGLRendererGeForceFXID: // incomplete OpenGL 2 support with software fallbacks, - // http://en.wikipedia.org/wiki/Comparison_of_Nvidia_graphics_processing_units - case kCGLRendererVTBladeXP2ID: // Trident DX8 chip, assuming it's not GL2 capable - case kCGLRendererMesa3DFXID: // non-programmable - case kCGLRendererGenericFloatID: // software renderer - case kCGLRendererGenericID: // software renderer - case kCGLRendererAppleSWID: // software renderer - break; - default: - if (mRendererIDs[i]) - foundGoodDevice = true; - } - } -#endif - - if (aFeature == nsIGfxInfo::FEATURE_WEBGL_MSAA) { - // Blacklist all ATI cards on OSX, except for - // 0x6760 and 0x9488 - if (mAdapterVendorID.Equals(GfxDriverInfo::GetDeviceVendor(VendorATI), nsCaseInsensitiveStringComparator()) && - (mAdapterDeviceID.LowerCaseEqualsLiteral("0x6760") || - mAdapterDeviceID.LowerCaseEqualsLiteral("0x9488"))) { - *aStatus = nsIGfxInfo::FEATURE_NO_INFO; - return NS_OK; + // CGL reports a list of renderers, some renderers are slow (e.g. software) + // and AFAIK we can't decide which one will be used among them, so let's implement this by returning NO_INFO + // if any not-known-to-be-bad renderer is found. + // The assumption that we make here is that the system will spontaneously use the best/fastest renderer in the list. + // Note that the presence of software renderer fallbacks means that slow software rendering may be automatically + // used, which seems to be the case in bug 611292 where the user had a Intel GMA 945 card (non programmable hardware). + // Therefore we need to explicitly blacklist non-OpenGL2 hardware, which could result in a software renderer + // being used. + + for (PRUint32 i = 0; i < ArrayLength(mRendererIDs); ++i) { + switch (mRendererIDs[i]) { + case kCGLRendererATIRage128ID: // non-programmable + case kCGLRendererATIRadeonID: // non-programmable + case kCGLRendererATIRageProID: // non-programmable + case kCGLRendererATIRadeon8500ID: // no OpenGL 2 support, http://en.wikipedia.org/wiki/Radeon_R200 + case kCGLRendererATIRadeon9700ID: // no OpenGL 2 support, http://en.wikipedia.org/wiki/Radeon_R200 + case kCGLRendererATIRadeonX1000ID: // can't render to non-power-of-two texture backed framebuffers + case kCGLRendererIntel900ID: // non-programmable + case kCGLRendererGeForce2MXID: // non-programmable + case kCGLRendererGeForce3ID: // no OpenGL 2 support, + // http://en.wikipedia.org/wiki/Comparison_of_Nvidia_graphics_processing_units + case kCGLRendererGeForceFXID: // incomplete OpenGL 2 support with software fallbacks, + // http://en.wikipedia.org/wiki/Comparison_of_Nvidia_graphics_processing_units + case kCGLRendererVTBladeXP2ID: // Trident DX8 chip, assuming it's not GL2 capable + case kCGLRendererMesa3DFXID: // non-programmable + case kCGLRendererGenericFloatID: // software renderer + case kCGLRendererGenericID: // software renderer + case kCGLRendererAppleSWID: // software renderer + break; + default: + if (mRendererIDs[i]) + foundGoodDevice = true; } } +#endif + if (!foundGoodDevice) + status = nsIGfxInfo::FEATURE_BLOCKED_DEVICE; } - return GfxInfoBase::GetFeatureStatusImpl(aFeature, aStatus, aSuggestedDriverVersion, aDriverInfo, &os); -} - -#ifdef DEBUG - -// Implement nsIGfxInfoDebug + if (aFeature == nsIGfxInfo::FEATURE_WEBGL_OPENGL) { + // same comment as above for FEATURE_OPENGL_LAYERS. + bool foundGoodDevice = true; + + // Blacklist the Geforce 7300 GT because of bug 678053 + if (mAdapterVendorID == 0x10de && mAdapterDeviceID == 0x0393) { + foundGoodDevice = false; + } -/* void spoofVendorID (in DOMString aVendorID); */ -NS_IMETHODIMP GfxInfo::SpoofVendorID(const nsAString & aVendorID) -{ - mAdapterVendorID = aVendorID; - return NS_OK; -} + if (!foundGoodDevice) + status = nsIGfxInfo::FEATURE_BLOCKED_DEVICE; + } -/* void spoofDeviceID (in unsigned long aDeviceID); */ -NS_IMETHODIMP GfxInfo::SpoofDeviceID(const nsAString & aDeviceID) -{ - mAdapterDeviceID = aDeviceID; - return NS_OK; -} + if (aFeature == nsIGfxInfo::FEATURE_WEBGL_MSAA) { + // Blacklist all ATI cards on OSX, except for + // 0x6760 and 0x9488 + if (mAdapterVendorID == GfxDriverInfo::vendorATI && + (mAdapterDeviceID == 0x6760 || mAdapterDeviceID == 0x9488)) { + *aStatus = nsIGfxInfo::FEATURE_NO_INFO; + return NS_OK; + } + } -/* void spoofDriverVersion (in DOMString aDriverVersion); */ -NS_IMETHODIMP GfxInfo::SpoofDriverVersion(const nsAString & aDriverVersion) -{ - mDriverVersion = aDriverVersion; - return NS_OK; -} + if (aOS) + *aOS = os; + *aStatus = status; -/* void spoofOSVersion (in unsigned long aVersion); */ -NS_IMETHODIMP GfxInfo::SpoofOSVersion(PRUint32 aVersion) -{ - mOSXVersion = aVersion; - return NS_OK; + return GfxInfoBase::GetFeatureStatusImpl(aFeature, aStatus, aSuggestedDriverVersion, aDriverInfo, &os); } - -#endif diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/windows/GfxInfo.cpp thunderbird-11.0+build1/mozilla/mozilla/widget/src/windows/GfxInfo.cpp --- thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/windows/GfxInfo.cpp 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/widget/src/windows/GfxInfo.cpp 2012-03-10 00:04:16.000000000 +0000 @@ -49,7 +49,6 @@ #include "prprf.h" #include "GfxDriverInfo.h" #include "mozilla/Preferences.h" -#include "nsPrintfCString.h" #if defined(MOZ_CRASHREPORTER) #include "nsExceptionHandler.h" @@ -70,7 +69,11 @@ GfxInfo::GfxInfo() - : mWindowsVersion(0), + : mAdapterVendorID(0), + mAdapterDeviceID(0), + mAdapterVendorID2(0), + mAdapterDeviceID2(0), + mWindowsVersion(0), mHasDualGPU(false), mIsGPU2Active(false) { @@ -425,8 +428,8 @@ setupDestroyDeviceInfoList(devinfo); } - mAdapterVendorID.AppendPrintf("0x%04x", ParseIDFromDeviceID(mDeviceID, "VEN_", 4)); - mAdapterDeviceID.AppendPrintf("0x%04x", ParseIDFromDeviceID(mDeviceID, "&DEV_", 4)); + mAdapterVendorID = ParseIDFromDeviceID(mDeviceID, "VEN_", 4); + mAdapterDeviceID = ParseIDFromDeviceID(mDeviceID, "&DEV_", 4); mAdapterSubsysID = ParseIDFromDeviceID(mDeviceID, "&SUBSYS_", 8); // We now check for second display adapter. @@ -476,14 +479,10 @@ continue; } deviceID2 = value; - nsAutoString adapterVendorID2String; - nsAutoString adapterDeviceID2String; adapterVendorID2 = ParseIDFromDeviceID(deviceID2, "VEN_", 4); - adapterVendorID2String.AppendPrintf("0x%04x", adapterVendorID2); adapterDeviceID2 = ParseIDFromDeviceID(deviceID2, "&DEV_", 4); - adapterDeviceID2String.AppendPrintf("0x%04x", adapterDeviceID2); - if (mAdapterVendorID == adapterVendorID2String && - mAdapterDeviceID == adapterDeviceID2String) { + if ((adapterVendorID2 == mAdapterVendorID) && + (adapterDeviceID2 == mAdapterDeviceID)) { RegCloseKey(key); continue; } @@ -523,8 +522,8 @@ mDeviceKey2 = driverKey2; mDriverVersion2 = driverVersion2; mDriverDate2 = driverDate2; - mAdapterVendorID2.AppendPrintf("0x%04x", adapterVendorID2); - mAdapterDeviceID2.AppendPrintf("0x%04x", adapterDeviceID2); + mAdapterVendorID2 = adapterVendorID2; + mAdapterDeviceID2 = adapterDeviceID2; mAdapterSubsysID2 = ParseIDFromDeviceID(mDeviceID2, "&SUBSYS_", 8); break; } @@ -549,11 +548,11 @@ const char *spoofedVendor = PR_GetEnv("MOZ_GFX_SPOOF_VENDOR_ID"); if (spoofedVendor) { - mAdapterVendorID.AssignASCII(spoofedVendor); + PR_sscanf(spoofedVendor, "%x", &mAdapterVendorID); } mHasDriverVersionMismatch = false; - if (mAdapterVendorID == GfxDriverInfo::GetDeviceVendor(VendorIntel)) { + if (mAdapterVendorID == GfxDriverInfo::vendorIntel) { // we've had big crashers (bugs 590373 and 595364) apparently correlated // with bad Intel driver installations where the DriverVersion reported // by the registry was not the version of the DLL. @@ -577,7 +576,7 @@ const char *spoofedDevice = PR_GetEnv("MOZ_GFX_SPOOF_DEVICE_ID"); if (spoofedDevice) { - mAdapterDeviceID.AssignASCII(spoofedDevice); + PR_sscanf(spoofedDevice, "%x", &mAdapterDeviceID); } const char *spoofedWindowsVersion = PR_GetEnv("MOZ_GFX_SPOOF_WINDOWS_VERSION"); @@ -682,35 +681,35 @@ return NS_OK; } -/* readonly attribute DOMString adapterVendorID; */ +/* readonly attribute unsigned long adapterVendorID; */ NS_IMETHODIMP -GfxInfo::GetAdapterVendorID(nsAString & aAdapterVendorID) +GfxInfo::GetAdapterVendorID(PRUint32 *aAdapterVendorID) { - aAdapterVendorID = mAdapterVendorID; + *aAdapterVendorID = mAdapterVendorID; return NS_OK; } -/* readonly attribute DOMString adapterVendorID2; */ +/* readonly attribute unsigned long adapterVendorID2; */ NS_IMETHODIMP -GfxInfo::GetAdapterVendorID2(nsAString & aAdapterVendorID) +GfxInfo::GetAdapterVendorID2(PRUint32 *aAdapterVendorID) { - aAdapterVendorID = mAdapterVendorID2; + *aAdapterVendorID = mAdapterVendorID2; return NS_OK; } -/* readonly attribute DOMString adapterDeviceID; */ +/* readonly attribute unsigned long adapterDeviceID; */ NS_IMETHODIMP -GfxInfo::GetAdapterDeviceID(nsAString & aAdapterDeviceID) +GfxInfo::GetAdapterDeviceID(PRUint32 *aAdapterDeviceID) { - aAdapterDeviceID = mAdapterDeviceID; + *aAdapterDeviceID = mAdapterDeviceID; return NS_OK; } -/* readonly attribute DOMString adapterDeviceID2; */ +/* readonly attribute unsigned long adapterDeviceID2; */ NS_IMETHODIMP -GfxInfo::GetAdapterDeviceID2(nsAString & aAdapterDeviceID) +GfxInfo::GetAdapterDeviceID2(PRUint32 *aAdapterDeviceID) { - aAdapterDeviceID = mAdapterDeviceID2; + *aAdapterDeviceID = mAdapterDeviceID2; return NS_OK; } @@ -745,59 +744,52 @@ #if defined(MOZ_CRASHREPORTER) CheckForCiscoVPN(); - nsString deviceID, vendorID; - nsCString narrowDeviceID, narrowVendorID; + nsCAutoString deviceIDString, vendorIDString; + PRUint32 deviceID, vendorID; nsAutoString adapterDriverVersionString; - GetAdapterDeviceID(deviceID); - CopyUTF16toUTF8(deviceID, narrowDeviceID); - GetAdapterVendorID(vendorID); - CopyUTF16toUTF8(vendorID, narrowVendorID); + GetAdapterDeviceID(&deviceID); + GetAdapterVendorID(&vendorID); GetAdapterDriverVersion(adapterDriverVersionString); + deviceIDString.AppendPrintf("%04x", deviceID); + vendorIDString.AppendPrintf("%04x", vendorID); + CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("AdapterVendorID"), - narrowVendorID); + vendorIDString); CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("AdapterDeviceID"), - narrowDeviceID); + deviceIDString); /* Add an App Note for now so that we get the data immediately. These * can go away after we store the above in the socorro db */ nsCAutoString note; /* AppendPrintf only supports 32 character strings, mrghh. */ - note.Append("AdapterVendorID: "); - note.Append(narrowVendorID); - note.Append(", AdapterDeviceID: "); - note.Append(narrowDeviceID); - note.AppendPrintf(", AdapterSubsysID: %08x, ", mAdapterSubsysID); - note.Append("AdapterDriverVersion: "); + note.AppendPrintf("AdapterVendorID: %04x, ", vendorID); + note.AppendPrintf("AdapterDeviceID: %04x, ", deviceID); + note.AppendPrintf("AdapterSubsysID: %08x, ", mAdapterSubsysID); + note.AppendPrintf("AdapterDriverVersion: "); note.Append(NS_LossyConvertUTF16toASCII(adapterDriverVersionString)); - if (vendorID == GfxDriverInfo::GetDeviceVendor(VendorAll)) { - /* if we didn't find a valid vendorID lets append the mDeviceID string to try to find out why */ - note.Append(", "); - note.AppendWithConversion(mDeviceID); - note.Append(", "); - note.AppendWithConversion(mDeviceKeyDebug); - LossyAppendUTF16toASCII(mDeviceKeyDebug, note); + if (vendorID == 0) { + /* if we didn't find a valid vendorID lets append the mDeviceID string to try to find out why */ + note.AppendLiteral(", "); + LossyAppendUTF16toASCII(mDeviceID, note); + note.AppendLiteral(", "); + LossyAppendUTF16toASCII(mDeviceKeyDebug, note); } note.Append("\n"); if (mHasDualGPU) { - nsString deviceID2, vendorID2; + PRUint32 deviceID2, vendorID2; nsAutoString adapterDriverVersionString2; - nsCString narrowDeviceID2, narrowVendorID2; note.AppendLiteral("Has dual GPUs. GPU #2: "); - GetAdapterDeviceID2(deviceID2); - CopyUTF16toUTF8(deviceID2, narrowDeviceID2); - GetAdapterVendorID2(vendorID2); - CopyUTF16toUTF8(vendorID2, narrowVendorID2); + GetAdapterDeviceID2(&deviceID2); + GetAdapterVendorID2(&vendorID2); GetAdapterDriverVersion2(adapterDriverVersionString2); - note.Append("AdapterVendorID2: "); - note.Append(narrowVendorID2); - note.Append(", AdapterDeviceID2: "); - note.Append(narrowDeviceID2); - note.AppendPrintf(", AdapterSubsysID2: %08x, ", mAdapterSubsysID2); + note.AppendPrintf("AdapterVendorID2: %04x, ", vendorID2); + note.AppendPrintf("AdapterDeviceID2: %04x, ", deviceID2); + note.AppendPrintf("AdapterSubsysID2: %08x, ", mAdapterSubsysID2); note.AppendPrintf("AdapterDriverVersion2: "); note.Append(NS_LossyConvertUTF16toASCII(adapterDriverVersionString2)); } @@ -830,31 +822,39 @@ GfxInfo::GetGfxDriverInfo() { if (!mDriverInfo->Length()) { - /* + /* * NVIDIA entries */ APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_WINDOWS_XP, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), GfxDriverInfo::allDevices, + GfxDriverInfo::vendorNVIDIA, GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN, V(6,14,12,5721), "257.21" ); APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_WINDOWS_VISTA, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), GfxDriverInfo::allDevices, + GfxDriverInfo::vendorNVIDIA, GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN, V(8,17,12,5721), "257.21" ); APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_WINDOWS_7, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), GfxDriverInfo::allDevices, + GfxDriverInfo::vendorNVIDIA, GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN, V(8,17,12,5721), "257.21" ); + /* Disable D3D9 layers on NVIDIA 6100/6150/6200 series due to glitches + * whilst scrolling. See bugs: 612007, 644787 & 645872. + */ + APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, + GfxDriverInfo::vendorNVIDIA, (GfxDeviceFamily) GfxDriverInfo::GetDeviceFamily(DeviceFamily::NvidiaBlockD3D9Layers), + nsIGfxInfo::FEATURE_DIRECT3D_9_LAYERS, nsIGfxInfo::FEATURE_BLOCKED_DEVICE, + DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions ); + /* * AMD/ATI entries */ APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_ALL, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, + GfxDriverInfo::vendorATI, GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN, V(8,741,0,0), "10.6" ); APPEND_TO_DRIVER_BLOCKLIST( DRIVER_OS_ALL, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorAMD), GfxDriverInfo::allDevices, + GfxDriverInfo::vendorAMD, GfxDriverInfo::allDevices, GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_LESS_THAN, V(8,741,0,0), "10.6" ); @@ -865,19 +865,19 @@ * + many complaints about incorrect rendering */ APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, + GfxDriverInfo::vendorATI, GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_OPENGL_LAYERS, nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions ); APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorATI), GfxDriverInfo::allDevices, + GfxDriverInfo::vendorATI, GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBGL_OPENGL, nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions ); APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorAMD), GfxDriverInfo::allDevices, + GfxDriverInfo::vendorAMD, GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_OPENGL_LAYERS, nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions ); APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorAMD), GfxDriverInfo::allDevices, + GfxDriverInfo::vendorAMD, GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBGL_OPENGL, nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions ); @@ -889,145 +889,137 @@ * Block all features on any drivers before this, as there's a crash when a MS Hotfix is installed. * The crash itself is Direct2D-related, but for safety we block all features. */ - #define IMPLEMENT_INTEL_DRIVER_BLOCKLIST(winVer, devFamily, driverVer) \ - APPEND_TO_DRIVER_BLOCKLIST2( winVer, \ - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(devFamily), \ - GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, \ + #define IMPLEMENT_INTEL_DRIVER_BLOCKLIST(winVer, devFamily, driverVer) \ + APPEND_TO_DRIVER_BLOCKLIST2( winVer, \ + GfxDriverInfo::vendorIntel, (GfxDeviceFamily) GfxDriverInfo::GetDeviceFamily(devFamily), \ + GfxDriverInfo::allFeatures, nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, \ DRIVER_LESS_THAN, driverVer ) - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, IntelGMA500, V(6,14,11,1018)); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, IntelGMA900, V(6,14,10,4764)); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, IntelGMA950, V(6,14,10,4926)); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, IntelGMA3150, V(6,14,10,5260)); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, IntelGMAX3000, V(6,14,10,5218)); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, IntelGMAX4500HD, V(6,14,10,5284)); - - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, IntelGMA500, V(7,14,10,1006)); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, IntelGMA900, GfxDriverInfo::allDriverVersions); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, IntelGMA950, V(7,14,10,1504)); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, IntelGMA3150, V(7,14,10,2124)); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, IntelGMAX3000, V(7,15,10,1666)); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, IntelGMAX4500HD, V(8,15,10,2202)); - - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, IntelGMA500, V(5,0,0,2026)); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, IntelGMA900, GfxDriverInfo::allDriverVersions); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, IntelGMA950, V(8,15,10,1930)); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, IntelGMA3150, V(8,14,10,2117)); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, IntelGMAX3000, V(8,15,10,1930)); - IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, IntelGMAX4500HD, V(8,15,10,2202)); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, DeviceFamily::IntelGMA500, V(6,14,11,1018)); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, DeviceFamily::IntelGMA900, V(6,14,10,4764)); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, DeviceFamily::IntelGMA950, V(6,14,10,4926)); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, DeviceFamily::IntelGMA3150, V(6,14,10,5260)); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, DeviceFamily::IntelGMAX3000, V(6,14,10,5218)); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_XP, DeviceFamily::IntelGMAX4500HD, V(6,14,10,5284)); + + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, DeviceFamily::IntelGMA500, V(7,14,10,1006)); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, DeviceFamily::IntelGMA900, GfxDriverInfo::allDriverVersions); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, DeviceFamily::IntelGMA950, V(7,14,10,1504)); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, DeviceFamily::IntelGMA3150, V(7,14,10,2124)); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, DeviceFamily::IntelGMAX3000, V(7,15,10,1666)); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_VISTA, DeviceFamily::IntelGMAX4500HD, V(8,15,10,2202)); + + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, DeviceFamily::IntelGMA500, V(5,0,0,2026)); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, DeviceFamily::IntelGMA900, GfxDriverInfo::allDriverVersions); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, DeviceFamily::IntelGMA950, V(8,15,10,1930)); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, DeviceFamily::IntelGMA3150, V(8,14,10,2117)); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, DeviceFamily::IntelGMAX3000, V(8,15,10,1930)); + IMPLEMENT_INTEL_DRIVER_BLOCKLIST(DRIVER_OS_WINDOWS_7, DeviceFamily::IntelGMAX4500HD, V(8,15,10,2202)); - /* OpenGL on any Intel hardware is discouraged */ + /* OpenGL on any Intel hardware is discouraged */ APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), GfxDriverInfo::allDevices, + GfxDriverInfo::vendorIntel, GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_OPENGL_LAYERS, nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions ); APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorIntel), GfxDriverInfo::allDevices, + GfxDriverInfo::vendorIntel, GfxDriverInfo::allDevices, nsIGfxInfo::FEATURE_WEBGL_OPENGL, nsIGfxInfo::FEATURE_DISCOURAGED, DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions ); - - /* Disable D3D9 layers on NVIDIA 6100/6150/6200 series due to glitches - * whilst scrolling. See bugs: 612007, 644787 & 645872. - */ - APPEND_TO_DRIVER_BLOCKLIST2( DRIVER_OS_ALL, - (nsAString&) GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), (GfxDeviceFamily*) GfxDriverInfo::GetDeviceFamily(NvidiaBlockD3D9Layers), - nsIGfxInfo::FEATURE_DIRECT3D_9_LAYERS, nsIGfxInfo::FEATURE_BLOCKED_DEVICE, - DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions ); } return *mDriverInfo; } nsresult -GfxInfo::GetFeatureStatusImpl(PRInt32 aFeature, +GfxInfo::GetFeatureStatusImpl(PRInt32 aFeature, PRInt32 *aStatus, nsAString & aSuggestedDriverVersion, const nsTArray& aDriverInfo, OperatingSystem* aOS /* = nsnull */) { - NS_ENSURE_ARG_POINTER(aStatus); aSuggestedDriverVersion.SetIsVoid(true); - OperatingSystem os = WindowsVersionToOperatingSystem(mWindowsVersion); - *aStatus = nsIGfxInfo::FEATURE_STATUS_UNKNOWN; - if (aOS) - *aOS = os; - // Don't evaluate special cases if we're checking the downloaded blocklist. - if (!aDriverInfo.Length()) { - nsAutoString adapterVendorID; - nsAutoString adapterDeviceID; - nsAutoString adapterDriverVersionString; - if (NS_FAILED(GetAdapterVendorID(adapterVendorID)) || - NS_FAILED(GetAdapterDeviceID(adapterDeviceID)) || - NS_FAILED(GetAdapterDriverVersion(adapterDriverVersionString))) - { - return NS_ERROR_FAILURE; - } + PRInt32 status = nsIGfxInfo::FEATURE_STATUS_UNKNOWN; - if (!adapterVendorID.Equals(GfxDriverInfo::GetDeviceVendor(VendorIntel), nsCaseInsensitiveStringComparator()) && - !adapterVendorID.Equals(GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), nsCaseInsensitiveStringComparator()) && - !adapterVendorID.Equals(GfxDriverInfo::GetDeviceVendor(VendorAMD), nsCaseInsensitiveStringComparator()) && - !adapterVendorID.Equals(GfxDriverInfo::GetDeviceVendor(VendorATI), nsCaseInsensitiveStringComparator()) && - // FIXME - these special hex values are currently used in xpcshell tests introduced by - // bug 625160 patch 8/8. Maybe these tests need to be adjusted now that we're only whitelisting - // intel/ati/nvidia. - !adapterVendorID.LowerCaseEqualsLiteral("0xabcd") && - !adapterVendorID.LowerCaseEqualsLiteral("0xdcba") && - !adapterVendorID.LowerCaseEqualsLiteral("0xabab") && - !adapterVendorID.LowerCaseEqualsLiteral("0xdcdc")) - { - *aStatus = FEATURE_BLOCKED_DEVICE; - return NS_OK; - } + PRUint32 adapterVendorID = 0; + PRUint32 adapterDeviceID = 0; + nsAutoString adapterDriverVersionString; + if (NS_FAILED(GetAdapterVendorID(&adapterVendorID)) || + NS_FAILED(GetAdapterDeviceID(&adapterDeviceID)) || + NS_FAILED(GetAdapterDriverVersion(adapterDriverVersionString))) + { + return NS_ERROR_FAILURE; + } - PRUint64 driverVersion; - if (!ParseDriverVersion(adapterDriverVersionString, &driverVersion)) { - return NS_ERROR_FAILURE; - } + if (adapterVendorID != GfxDriverInfo::vendorIntel && + adapterVendorID != GfxDriverInfo::vendorNVIDIA && + adapterVendorID != GfxDriverInfo::vendorAMD && + adapterVendorID != GfxDriverInfo::vendorATI && + // FIXME - these special hex values are currently used in xpcshell tests introduced by + // bug 625160 patch 8/8. Maybe these tests need to be adjusted now that we're only whitelisting + // intel/ati/nvidia. + adapterVendorID != 0xabcd && + adapterVendorID != 0xdcba && + adapterVendorID != 0xabab && + adapterVendorID != 0xdcdc) + { + *aStatus = FEATURE_BLOCKED_DEVICE; + return NS_OK; + } - // special-case the WinXP test slaves: they have out-of-date drivers, but we still want to - // whitelist them, actually we do know that this combination of device and driver version - // works well. - if (mWindowsVersion == gfxWindowsPlatform::kWindowsXP && - adapterVendorID.Equals(GfxDriverInfo::GetDeviceVendor(VendorNVIDIA), nsCaseInsensitiveStringComparator()) && - adapterDeviceID.LowerCaseEqualsLiteral("0x0861") && // GeForce 9400 - driverVersion == V(6,14,11,7756)) - { - *aStatus = FEATURE_NO_INFO; - return NS_OK; - } + PRUint64 driverVersion; + if (!ParseDriverVersion(adapterDriverVersionString, &driverVersion)) { + return NS_ERROR_FAILURE; + } - if (aFeature == FEATURE_DIRECT3D_9_LAYERS && - mWindowsVersion < gfxWindowsPlatform::kWindowsXP) - { - *aStatus = FEATURE_BLOCKED_OS_VERSION; - return NS_OK; - } + // special-case the WinXP test slaves: they have out-of-date drivers, but we still want to + // whitelist them, actually we do know that this combination of device and driver version + // works well. + if (mWindowsVersion == gfxWindowsPlatform::kWindowsXP && + adapterVendorID == GfxDriverInfo::vendorNVIDIA && + adapterDeviceID == 0x0861 && // GeForce 9400 + driverVersion == V(6,14,11,7756)) + { + *aStatus = FEATURE_NO_INFO; + return NS_OK; + } - // ANGLE currently uses D3D10 <-> D3D9 interop, which crashes on Optimus - // machines. - if (aFeature == FEATURE_WEBGL_ANGLE && - gfxWindowsPlatform::IsOptimus()) + if (aFeature == FEATURE_DIRECT3D_9_LAYERS && + mWindowsVersion < gfxWindowsPlatform::kWindowsXP) + { + *aStatus = FEATURE_BLOCKED_OS_VERSION; + return NS_OK; + } + + // ANGLE currently uses D3D10 <-> D3D9 interop, which crashes on Optimus + // machines. + if (aFeature == FEATURE_WEBGL_ANGLE && + gfxWindowsPlatform::IsOptimus()) + { + *aStatus = FEATURE_BLOCKED_DEVICE; + return NS_OK; + } + + OperatingSystem os = WindowsVersionToOperatingSystem(mWindowsVersion); + + // Windows Server 2003 should be just like Windows XP for present purpose, but still has a different version number. + // OTOH Windows Server 2008 R1 and R2 already have the same version numbers as Vista and Seven respectively + if (os == DRIVER_OS_WINDOWS_SERVER_2003) + os = DRIVER_OS_WINDOWS_XP; + + if (mHasDriverVersionMismatch) { + if (aFeature == nsIGfxInfo::FEATURE_DIRECT3D_10_LAYERS || + aFeature == nsIGfxInfo::FEATURE_DIRECT3D_10_1_LAYERS || + aFeature == nsIGfxInfo::FEATURE_DIRECT2D) { - *aStatus = FEATURE_BLOCKED_DEVICE; + *aStatus = nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION; return NS_OK; } - - // Windows Server 2003 should be just like Windows XP for present purpose, but still has a different version number. - // OTOH Windows Server 2008 R1 and R2 already have the same version numbers as Vista and Seven respectively - if (os == DRIVER_OS_WINDOWS_SERVER_2003) - os = DRIVER_OS_WINDOWS_XP; - - if (mHasDriverVersionMismatch) { - if (aFeature == nsIGfxInfo::FEATURE_DIRECT3D_10_LAYERS || - aFeature == nsIGfxInfo::FEATURE_DIRECT3D_10_1_LAYERS || - aFeature == nsIGfxInfo::FEATURE_DIRECT2D) - { - *aStatus = nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION; - return NS_OK; - } - } } + *aStatus = status; + if (aOS) + *aOS = os; + return GfxInfoBase::GetFeatureStatusImpl(aFeature, aStatus, aSuggestedDriverVersion, aDriverInfo, &os); } @@ -1035,15 +1027,15 @@ // Implement nsIGfxInfoDebug -/* void spoofVendorID (in DOMString aVendorID); */ -NS_IMETHODIMP GfxInfo::SpoofVendorID(const nsAString & aVendorID) +/* void spoofVendorID (in unsigned long aVendorID); */ +NS_IMETHODIMP GfxInfo::SpoofVendorID(PRUint32 aVendorID) { mAdapterVendorID = aVendorID; return NS_OK; } /* void spoofDeviceID (in unsigned long aDeviceID); */ -NS_IMETHODIMP GfxInfo::SpoofDeviceID(const nsAString & aDeviceID) +NS_IMETHODIMP GfxInfo::SpoofDeviceID(PRUint32 aDeviceID) { mAdapterDeviceID = aDeviceID; return NS_OK; diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/windows/GfxInfo.h thunderbird-11.0+build1/mozilla/mozilla/widget/src/windows/GfxInfo.h --- thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/windows/GfxInfo.h 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/widget/src/windows/GfxInfo.h 2012-03-10 00:04:16.000000000 +0000 @@ -41,11 +41,15 @@ #define __mozilla_widget_GfxInfo_h__ #include "GfxInfoBase.h" +#include "nsIGfxInfoDebug.h" namespace mozilla { namespace widget { class GfxInfo : public GfxInfoBase +#ifdef DEBUG + , public nsIGfxInfoDebug +#endif { public: GfxInfo(); @@ -59,15 +63,15 @@ NS_SCRIPTABLE NS_IMETHOD GetCleartypeParameters(nsAString & aCleartypeParams); NS_SCRIPTABLE NS_IMETHOD GetAdapterDescription(nsAString & aAdapterDescription); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriver(nsAString & aAdapterDriver); - NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID(nsAString & aAdapterVendorID); - NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID(nsAString & aAdapterDeviceID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID(PRUint32 *aAdapterVendorID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID(PRUint32 *aAdapterDeviceID); NS_SCRIPTABLE NS_IMETHOD GetAdapterRAM(nsAString & aAdapterRAM); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverVersion(nsAString & aAdapterDriverVersion); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverDate(nsAString & aAdapterDriverDate); NS_SCRIPTABLE NS_IMETHOD GetAdapterDescription2(nsAString & aAdapterDescription); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriver2(nsAString & aAdapterDriver); - NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID2(nsAString & aAdapterVendorID); - NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID2(nsAString & aAdapterDeviceID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID2(PRUint32 *aAdapterVendorID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID2(PRUint32 *aAdapterDeviceID); NS_SCRIPTABLE NS_IMETHOD GetAdapterRAM2(nsAString & aAdapterRAM); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverVersion2(nsAString & aAdapterDriverVersion); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverDate2(nsAString & aAdapterDriverDate); @@ -76,13 +80,13 @@ using GfxInfoBase::GetFeatureSuggestedDriverVersion; using GfxInfoBase::GetWebGLParameter; - virtual nsresult Init(); - #ifdef DEBUG NS_DECL_ISUPPORTS_INHERITED NS_DECL_NSIGFXINFODEBUG #endif + virtual nsresult Init(); + protected: virtual nsresult GetFeatureStatusImpl(PRInt32 aFeature, @@ -101,16 +105,16 @@ nsString mDriverDate; nsString mDeviceKey; nsString mDeviceKeyDebug; - nsString mAdapterVendorID; - nsString mAdapterDeviceID; + PRUint32 mAdapterVendorID; + PRUint32 mAdapterDeviceID; PRUint32 mAdapterSubsysID; nsString mDeviceString2; nsString mDriverVersion2; nsString mDeviceID2; nsString mDriverDate2; nsString mDeviceKey2; - nsString mAdapterVendorID2; - nsString mAdapterDeviceID2; + PRUint32 mAdapterVendorID2; + PRUint32 mAdapterDeviceID2; PRUint32 mAdapterSubsysID2; PRUint32 mWindowsVersion; bool mHasDualGPU; diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/xpwidgets/GfxDriverInfo.cpp thunderbird-11.0+build1/mozilla/mozilla/widget/src/xpwidgets/GfxDriverInfo.cpp --- thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/xpwidgets/GfxDriverInfo.cpp 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/widget/src/xpwidgets/GfxDriverInfo.cpp 2012-03-10 00:04:16.000000000 +0000 @@ -40,16 +40,20 @@ using namespace mozilla::widget; +PRUint32 GfxDriverInfo::allAdapterVendors = 0; PRInt32 GfxDriverInfo::allFeatures = 0; PRUint64 GfxDriverInfo::allDriverVersions = ~(PRUint64(0)); -GfxDeviceFamily* const GfxDriverInfo::allDevices = nsnull; -GfxDeviceFamily* GfxDriverInfo::mDeviceFamilies[DeviceFamilyMax]; -nsAString* GfxDriverInfo::mDeviceVendors[DeviceVendorMax]; +PRUint32 GfxDriverInfo::vendorIntel = 0x8086; +PRUint32 GfxDriverInfo::vendorNVIDIA = 0x10de; +PRUint32 GfxDriverInfo::vendorAMD = 0x1022; +PRUint32 GfxDriverInfo::vendorATI = 0x1002; + +GfxDeviceFamily GfxDriverInfo::allDevices = nsnull; GfxDriverInfo::GfxDriverInfo() : mOperatingSystem(DRIVER_OS_UNKNOWN), - mAdapterVendor(GfxDriverInfo::GetDeviceVendor(VendorAll)), + mAdapterVendor(allAdapterVendors), mDevices(allDevices), mDeleteDevices(false), mFeature(allFeatures), @@ -60,8 +64,8 @@ mSuggestedVersion(nsnull) {} -GfxDriverInfo::GfxDriverInfo(OperatingSystem os, nsAString& vendor, - GfxDeviceFamily* devices, +GfxDriverInfo::GfxDriverInfo(OperatingSystem os, PRUint32 vendor, + GfxDeviceFamily devices, PRInt32 feature, PRInt32 featureStatus, VersionComparisonOp op, PRUint64 driverVersion, @@ -89,11 +93,18 @@ mDriverVersionMax(aOrig.mDriverVersionMax), mSuggestedVersion(aOrig.mSuggestedVersion) { - // If we're managing the lifetime of the device family, we have to make a - // copy of the original's device family. - if (aOrig.mDeleteDevices && aOrig.mDevices) { - mDevices = new GfxDeviceFamily; - *mDevices = *aOrig.mDevices; + // If we're managing the lifetime of the devices array, we have to make a + // copy of the original's array. + if (aOrig.mDeleteDevices) { + PRUint32 count = 0; + const PRUint32 *device = aOrig.mDevices; + while (*device) { + count++; + device++; + } + + mDevices = new PRUint32[count + 1]; + memcpy(mDevices, aOrig.mDevices, sizeof(PRUint32) * (count + 1)); } else { mDevices = aOrig.mDevices; } @@ -104,167 +115,133 @@ GfxDriverInfo::~GfxDriverInfo() { if (mDeleteDevices) - delete mDevices; + delete[] mDevices; } -// Macros for appending a device to the DeviceFamily. -#define APPEND_DEVICE(device) APPEND_DEVICE2(#device) -#define APPEND_DEVICE2(device) deviceFamily->AppendElement(NS_LITERAL_STRING(device)) - -const GfxDeviceFamily* GfxDriverInfo::GetDeviceFamily(DeviceFamily id) +const GfxDeviceFamily GfxDriverInfo::GetDeviceFamily(DeviceFamily id) { - // The code here is too sensitive to fall through to the default case if the - // code is invalid. - NS_ASSERTION(id >= 0 && id < DeviceFamilyMax, "DeviceFamily id is out of range"); - - // If it already exists, we must have processed it once, so return it now. - if (mDeviceFamilies[id]) - return mDeviceFamilies[id]; - - mDeviceFamilies[id] = new GfxDeviceFamily; - GfxDeviceFamily* deviceFamily = mDeviceFamilies[id]; - switch (id) { - case IntelGMA500: - APPEND_DEVICE(0x8108); /* IntelGMA500_1 */ - APPEND_DEVICE(0x8109); /* IntelGMA500_2 */ - break; - case IntelGMA900: - APPEND_DEVICE(0x2582); /* IntelGMA900_1 */ - APPEND_DEVICE(0x2782); /* IntelGMA900_2 */ - APPEND_DEVICE(0x2592); /* IntelGMA900_3 */ - APPEND_DEVICE(0x2792); /* IntelGMA900_4 */ - break; - case IntelGMA950: - APPEND_DEVICE(0x2772); /* Intel945G_1 */ - APPEND_DEVICE(0x2776); /* Intel945G_2 */ - APPEND_DEVICE(0x27a2); /* Intel945_1 */ - APPEND_DEVICE(0x27a6); /* Intel945_2 */ - APPEND_DEVICE(0x27ae); /* Intel945_3 */ - break; - case IntelGMA3150: - APPEND_DEVICE(0xa001); /* IntelGMA3150_Nettop_1 */ - APPEND_DEVICE(0xa002); /* IntelGMA3150_Nettop_2 */ - APPEND_DEVICE(0xa011); /* IntelGMA3150_Netbook_1 */ - APPEND_DEVICE(0xa012); /* IntelGMA3150_Netbook_2 */ - break; - case IntelGMAX3000: - APPEND_DEVICE(0x2972); /* Intel946GZ_1 */ - APPEND_DEVICE(0x2973); /* Intel946GZ_2 */ - APPEND_DEVICE(0x2982); /* IntelG35_1 */ - APPEND_DEVICE(0x2983); /* IntelG35_2 */ - APPEND_DEVICE(0x2992); /* IntelQ965_1 */ - APPEND_DEVICE(0x2993); /* IntelQ965_2 */ - APPEND_DEVICE(0x29a2); /* IntelG965_1 */ - APPEND_DEVICE(0x29a3); /* IntelG965_2 */ - APPEND_DEVICE(0x29b2); /* IntelQ35_1 */ - APPEND_DEVICE(0x29b3); /* IntelQ35_2 */ - APPEND_DEVICE(0x29c2); /* IntelG33_1 */ - APPEND_DEVICE(0x29c3); /* IntelG33_2 */ - APPEND_DEVICE(0x29d2); /* IntelQ33_1 */ - APPEND_DEVICE(0x29d3); /* IntelQ33_2 */ - APPEND_DEVICE(0x2a02); /* IntelGL960_1 */ - APPEND_DEVICE(0x2a03); /* IntelGL960_2 */ - APPEND_DEVICE(0x2a12); /* IntelGM965_1 */ - APPEND_DEVICE(0x2a13); /* IntelGM965_2 */ - break; - case IntelGMAX4500HD: - APPEND_DEVICE(0x2a42); /* IntelGMA4500MHD_1 */ - APPEND_DEVICE(0x2a43); /* IntelGMA4500MHD_2 */ - APPEND_DEVICE(0x2e42); /* IntelB43_1 */ - APPEND_DEVICE(0x2e43); /* IntelB43_2 */ - APPEND_DEVICE(0x2e92); /* IntelB43_3 */ - APPEND_DEVICE(0x2e93); /* IntelB43_4 */ - APPEND_DEVICE(0x2e32); /* IntelG41_1 */ - APPEND_DEVICE(0x2e33); /* IntelG41_2 */ - APPEND_DEVICE(0x2e22); /* IntelG45_1 */ - APPEND_DEVICE(0x2e23); /* IntelG45_2 */ - APPEND_DEVICE(0x2e12); /* IntelQ45_1 */ - APPEND_DEVICE(0x2e13); /* IntelQ45_2 */ - APPEND_DEVICE(0x0042); /* IntelHDGraphics */ - APPEND_DEVICE(0x0046); /* IntelMobileHDGraphics */ - APPEND_DEVICE(0x0102); /* IntelSandyBridge_1 */ - APPEND_DEVICE(0x0106); /* IntelSandyBridge_2 */ - APPEND_DEVICE(0x0112); /* IntelSandyBridge_3 */ - APPEND_DEVICE(0x0116); /* IntelSandyBridge_4 */ - APPEND_DEVICE(0x0122); /* IntelSandyBridge_5 */ - APPEND_DEVICE(0x0126); /* IntelSandyBridge_6 */ - APPEND_DEVICE(0x010a); /* IntelSandyBridge_7 */ - APPEND_DEVICE(0x0080); /* IntelIvyBridge */ - break; - case NvidiaBlockD3D9Layers: + case IntelGMA500: { + static const PRUint32 intelGMA500[] = { + 0x8108, /* IntelGMA500_1 */ + 0x8109, /* IntelGMA500_2 */ + 0 + }; + return (const GfxDeviceFamily) &intelGMA500[0]; + } + case IntelGMA900: { + static const PRUint32 intelGMA900[] = { + 0x2582, /* IntelGMA900_1 */ + 0x2782, /* IntelGMA900_2 */ + 0x2592, /* IntelGMA900_3 */ + 0x2792, /* IntelGMA900_4 */ + 0 + }; + return (const GfxDeviceFamily) &intelGMA900[0]; + } + case IntelGMA950: { + static const PRUint32 intelGMA950[] = { + 0x2772, /* Intel945G_1 */ + 0x2776, /* Intel945G_2 */ + 0x27A2, /* Intel945_1 */ + 0x27A6, /* Intel945_2 */ + 0x27AE, /* Intel945_3 */ + 0 + }; + return (const GfxDeviceFamily) &intelGMA950[0]; + } + case IntelGMA3150: { + static const PRUint32 intelGMA3150[] = { + 0xA001, /* IntelGMA3150_Nettop_1 */ + 0xA002, /* IntelGMA3150_Nettop_2 */ + 0xA011, /* IntelGMA3150_Netbook_1 */ + 0xA012, /* IntelGMA3150_Netbook_2 */ + 0 + }; + return (const GfxDeviceFamily) &intelGMA3150[0]; + } + case IntelGMAX3000: { + static const PRUint32 intelGMAX3000[] = { + 0x2972, /* Intel946GZ_1 */ + 0x2973, /* Intel946GZ_2 */ + 0x2982, /* IntelG35_1 */ + 0x2983, /* IntelG35_2 */ + 0x2992, /* IntelQ965_1 */ + 0x2993, /* IntelQ965_2 */ + 0x29A2, /* IntelG965_1 */ + 0x29A3, /* IntelG965_2 */ + 0x29B2, /* IntelQ35_1 */ + 0x29B3, /* IntelQ35_2 */ + 0x29C2, /* IntelG33_1 */ + 0x29C3, /* IntelG33_2 */ + 0x29D2, /* IntelQ33_1 */ + 0x29D3, /* IntelQ33_2 */ + 0x2A02, /* IntelGL960_1 */ + 0x2A03, /* IntelGL960_2 */ + 0x2A12, /* IntelGM965_1 */ + 0x2A13, /* IntelGM965_2 */ + 0 + }; + return (const GfxDeviceFamily) &intelGMAX3000[0]; + } + case IntelGMAX4500HD: { + static const PRUint32 intelGMAX4500HD[] = { + 0x2A42, /* IntelGMA4500MHD_1 */ + 0x2A43, /* IntelGMA4500MHD_2 */ + 0x2E42, /* IntelB43_1 */ + 0x2E43, /* IntelB43_2 */ + 0x2E92, /* IntelB43_3 */ + 0x2E93, /* IntelB43_4 */ + 0x2E32, /* IntelG41_1 */ + 0x2E33, /* IntelG41_2 */ + 0x2E22, /* IntelG45_1 */ + 0x2E23, /* IntelG45_2 */ + 0x2E12, /* IntelQ45_1 */ + 0x2E13, /* IntelQ45_2 */ + 0x0042, /* IntelHDGraphics */ + 0x0046, /* IntelMobileHDGraphics */ + 0x0102, /* IntelSandyBridge_1 */ + 0x0106, /* IntelSandyBridge_2 */ + 0x0112, /* IntelSandyBridge_3 */ + 0x0116, /* IntelSandyBridge_4 */ + 0x0122, /* IntelSandyBridge_5 */ + 0x0126, /* IntelSandyBridge_6 */ + 0x010A, /* IntelSandyBridge_7 */ + 0x0080, /* IntelIvyBridge */ + 0 + }; + return (const GfxDeviceFamily) &intelGMAX4500HD[0]; + } + case NvidiaBlockD3D9Layers: { // Glitches whilst scrolling (see bugs 612007, 644787, 645872) - APPEND_DEVICE(0x00f3); /* NV43 [GeForce 6200 (TM)] */ - APPEND_DEVICE(0x0146); /* NV43 [Geforce Go 6600TE/6200TE (TM)] */ - APPEND_DEVICE(0x014f); /* NV43 [GeForce 6200 (TM)] */ - APPEND_DEVICE(0x0161); /* NV44 [GeForce 6200 TurboCache (TM)] */ - APPEND_DEVICE(0x0162); /* NV44 [GeForce 6200SE TurboCache (TM)] */ - APPEND_DEVICE(0x0163); /* NV44 [GeForce 6200 LE (TM)] */ - APPEND_DEVICE(0x0164); /* NV44 [GeForce Go 6200 (TM)] */ - APPEND_DEVICE(0x0167); /* NV43 [GeForce Go 6200/6400 (TM)] */ - APPEND_DEVICE(0x0168); /* NV43 [GeForce Go 6200/6400 (TM)] */ - APPEND_DEVICE(0x0169); /* NV44 [GeForce 6250 (TM)] */ - APPEND_DEVICE(0x0222); /* NV44 [GeForce 6200 A-LE (TM)] */ - APPEND_DEVICE(0x0240); /* C51PV [GeForce 6150 (TM)] */ - APPEND_DEVICE(0x0241); /* C51 [GeForce 6150 LE (TM)] */ - APPEND_DEVICE(0x0244); /* C51 [Geforce Go 6150 (TM)] */ - APPEND_DEVICE(0x0245); /* C51 [Quadro NVS 210S/GeForce 6150LE (TM)] */ - APPEND_DEVICE(0x0247); /* C51 [GeForce Go 6100 (TM)] */ - APPEND_DEVICE(0x03d0); /* C61 [GeForce 6150SE nForce 430 (TM)] */ - APPEND_DEVICE(0x03d1); /* C61 [GeForce 6100 nForce 405 (TM)] */ - APPEND_DEVICE(0x03d2); /* C61 [GeForce 6100 nForce 400 (TM)] */ - APPEND_DEVICE(0x03d5); /* C61 [GeForce 6100 nForce 420 (TM)] */ - break; - case RadeonX1000: - // This list is from the ATIRadeonX1000.kext Info.plist - APPEND_DEVICE(0x7187); - APPEND_DEVICE(0x7210); - APPEND_DEVICE(0x71de); - APPEND_DEVICE(0x7146); - APPEND_DEVICE(0x7142); - APPEND_DEVICE(0x7109); - APPEND_DEVICE(0x71c5); - APPEND_DEVICE(0x71c0); - APPEND_DEVICE(0x7240); - APPEND_DEVICE(0x7249); - APPEND_DEVICE(0x7291); - break; - case Geforce7300GT: - APPEND_DEVICE(0x0393); - break; - // This should never happen, but we get a warning if we don't handle this. - case DeviceFamilyMax: - NS_WARNING("Invalid DeviceFamily id"); - break; - } - - return deviceFamily; -} - -// Macro for assigning a device vendor id to a string. -#define DECLARE_VENDOR_ID(name, deviceId) \ - case name: \ - mDeviceVendors[id]->AssignLiteral(deviceId); \ - break; - -const nsAString& GfxDriverInfo::GetDeviceVendor(DeviceVendor id) -{ - NS_ASSERTION(id >= 0 && id < DeviceVendorMax, "DeviceVendor id is out of range"); - - if (mDeviceVendors[id]) - return *mDeviceVendors[id]; - - mDeviceVendors[id] = new nsString(); - - switch (id) { - DECLARE_VENDOR_ID(VendorAll, ""); - DECLARE_VENDOR_ID(VendorIntel, "0x8086"); - DECLARE_VENDOR_ID(VendorNVIDIA, "0x10de"); - DECLARE_VENDOR_ID(VendorAMD, "0x1022"); - DECLARE_VENDOR_ID(VendorATI, "0x1002"); - // Suppress a warning. - DECLARE_VENDOR_ID(DeviceVendorMax, ""); + static const PRUint32 nvidiaBlockD3D9Layers[] = { + 0x00f3, /* NV43 [GeForce 6200 (TM)] */ + 0x0146, /* NV43 [Geforce Go 6600TE/6200TE (TM)] */ + 0x014f, /* NV43 [GeForce 6200 (TM)] */ + 0x0161, /* NV44 [GeForce 6200 TurboCache (TM)] */ + 0x0162, /* NV44 [GeForce 6200SE TurboCache (TM)] */ + 0x0163, /* NV44 [GeForce 6200 LE (TM)] */ + 0x0164, /* NV44 [GeForce Go 6200 (TM)] */ + 0x0167, /* NV43 [GeForce Go 6200/6400 (TM)] */ + 0x0168, /* NV43 [GeForce Go 6200/6400 (TM)] */ + 0x0169, /* NV44 [GeForce 6250 (TM)] */ + 0x0222, /* NV44 [GeForce 6200 A-LE (TM)] */ + 0x0240, /* C51PV [GeForce 6150 (TM)] */ + 0x0241, /* C51 [GeForce 6150 LE (TM)] */ + 0x0244, /* C51 [Geforce Go 6150 (TM)] */ + 0x0245, /* C51 [Quadro NVS 210S/GeForce 6150LE (TM)] */ + 0x0247, /* C51 [GeForce Go 6100 (TM)] */ + 0x03d0, /* C61 [GeForce 6150SE nForce 430 (TM)] */ + 0x03d1, /* C61 [GeForce 6100 nForce 405 (TM)] */ + 0x03d2, /* C61 [GeForce 6100 nForce 400 (TM)] */ + 0x03d5, /* C61 [GeForce 6100 nForce 420 (TM)] */ + 0 + }; + return (const GfxDeviceFamily) &nvidiaBlockD3D9Layers[0]; + } + default: + NS_WARNING("Invalid device family"); } - return *mDeviceVendors[id]; + return nsnull; } diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/xpwidgets/GfxDriverInfo.h thunderbird-11.0+build1/mozilla/mozilla/widget/src/xpwidgets/GfxDriverInfo.h --- thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/xpwidgets/GfxDriverInfo.h 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/widget/src/xpwidgets/GfxDriverInfo.h 2012-03-10 00:04:16.000000000 +0000 @@ -43,7 +43,6 @@ #define V(a,b,c,d) GFX_DRIVER_VERSION(a,b,c,d) -// Macros for adding a blocklist item to the static list. #define APPEND_TO_DRIVER_BLOCKLIST(os, vendor, devices, feature, featureStatus, driverComparator, driverVersion, suggestedVersion) \ mDriverInfo->AppendElement(GfxDriverInfo(os, vendor, devices, feature, featureStatus, driverComparator, driverVersion, suggestedVersion)) #define APPEND_TO_DRIVER_BLOCKLIST2(os, vendor, devices, feature, featureStatus, driverComparator, driverVersion) \ @@ -87,29 +86,17 @@ IntelGMA3150, IntelGMAX3000, IntelGMAX4500HD, - NvidiaBlockD3D9Layers, - RadeonX1000, - Geforce7300GT, - DeviceFamilyMax + NvidiaBlockD3D9Layers }; -enum DeviceVendor { - VendorAll, - VendorIntel, - VendorNVIDIA, - VendorAMD, - VendorATI, - DeviceVendorMax -}; - -/* Array of devices to match, or an empty array for all devices */ -typedef nsTArray GfxDeviceFamily; +/* A zero-terminated array of devices to match, or all devices */ +typedef PRUint32* GfxDeviceFamily; struct GfxDriverInfo { // If |ownDevices| is true, you are transferring ownership of the devices // array, and it will be deleted when this GfxDriverInfo is destroyed. - GfxDriverInfo(OperatingSystem os, nsAString& vendor, GfxDeviceFamily* devices, + GfxDriverInfo(OperatingSystem os, PRUint32 vendor, GfxDeviceFamily devices, PRInt32 feature, PRInt32 featureStatus, VersionComparisonOp op, PRUint64 driverVersion, const char *suggestedVersion = nsnull, bool ownDevices = false); @@ -120,10 +107,11 @@ OperatingSystem mOperatingSystem; - nsString mAdapterVendor; + PRUint32 mAdapterVendor; + static PRUint32 allAdapterVendors; - static GfxDeviceFamily* const allDevices; - GfxDeviceFamily* mDevices; + GfxDeviceFamily mDevices; + static GfxDeviceFamily allDevices; // Whether the mDevices array should be deleted when this structure is // deallocated. False by default. @@ -143,13 +131,14 @@ PRUint64 mDriverVersionMax; static PRUint64 allDriverVersions; - const char *mSuggestedVersion; + static PRUint32 vendorIntel; + static PRUint32 vendorNVIDIA; + static PRUint32 vendorAMD; + static PRUint32 vendorATI; - static const GfxDeviceFamily* GetDeviceFamily(DeviceFamily id); - static GfxDeviceFamily* mDeviceFamilies[DeviceFamilyMax]; + const char *mSuggestedVersion; - static const nsAString& GetDeviceVendor(DeviceVendor id); - static nsAString* mDeviceVendors[DeviceVendorMax]; + static const GfxDeviceFamily GetDeviceFamily(DeviceFamily id); }; #define GFX_DRIVER_VERSION(a,b,c,d) \ @@ -158,7 +147,6 @@ inline bool ParseDriverVersion(nsAString& aVersion, PRUint64 *aNumericVersion) { -#if defined(XP_WIN) int a, b, c, d; /* honestly, why do I even bother */ if (sscanf(NS_LossyConvertUTF16toASCII(aVersion).get(), @@ -170,11 +158,6 @@ if (d < 0 || d > 0xffff) return false; *aNumericVersion = GFX_DRIVER_VERSION(a, b, c, d); -#elif defined(ANDROID) - // Can't use aVersion.ToInteger() because that's not compiled into our code - // unless we have XPCOM_GLUE_AVOID_NSPR disabled. - *aNumericVersion = atoi(NS_LossyConvertUTF16toASCII(aVersion).get()); -#endif return true; } diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/xpwidgets/GfxInfoBase.cpp thunderbird-11.0+build1/mozilla/mozilla/widget/src/xpwidgets/GfxInfoBase.cpp --- thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/xpwidgets/GfxInfoBase.cpp 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/widget/src/xpwidgets/GfxInfoBase.cpp 2012-03-10 00:04:16.000000000 +0000 @@ -47,7 +47,6 @@ #include "nsCOMArray.h" #include "nsAutoPtr.h" #include "nsString.h" -#include "nsUnicharUtils.h" #include "mozilla/Services.h" #include "mozilla/Observer.h" #include "nsIObserver.h" @@ -81,16 +80,10 @@ const PRUnichar *aData) { MOZ_ASSERT(strcmp(aTopic, NS_XPCOM_SHUTDOWN_OBSERVER_ID) == 0); - - delete GfxInfoBase::mDriverInfo; - GfxInfoBase::mDriverInfo = nsnull; - - for (PRUint32 i = 0; i < DeviceFamilyMax; i++) - delete GfxDriverInfo::mDeviceFamilies[i]; - - for (PRUint32 i = 0; i < DeviceVendorMax; i++) - delete GfxDriverInfo::mDeviceVendors[i]; - + if (GfxInfoBase::mDriverInfo) { + delete GfxInfoBase::mDriverInfo; + GfxInfoBase::mDriverInfo = nsnull; + } return NS_OK; } }; @@ -314,16 +307,29 @@ return DRIVER_OS_UNKNOWN; } -static GfxDeviceFamily* +static PRUint32 +BlacklistHexToInt(const nsAString& aHex) +{ + PRInt32 err; + // nsAString doesn't have .ToInteger() :( + nsAutoString hex(aHex); + PRInt32 value = hex.ToInteger(&err, 16); + if (NS_FAILED(err)) + return 0; + return (PRUint32) value; +} + +static PRUint32* BlacklistDevicesToDeviceFamily(nsIDOMNodeList* aDevices) { PRUint32 length; if (NS_FAILED(aDevices->GetLength(&length))) return nsnull; - // For each , get its device ID, and return a freshly-allocated - // GfxDeviceFamily with the contents of that array. - GfxDeviceFamily* deviceIds = new GfxDeviceFamily; + // For each , get its device ID, and return a freshly-allocated array + // with the contents of that array. + nsAutoArrayPtr deviceIds(new PRUint32[length + 1]); + memset(deviceIds, 0, sizeof(PRUint32) * (length + 1)); for (PRUint32 i = 0; i < length; ++i) { nsCOMPtr node; @@ -334,10 +340,10 @@ if (!BlacklistNodeToTextValue(node, deviceValue)) continue; - deviceIds->AppendElement(deviceValue); + deviceIds[i] = BlacklistHexToInt(deviceValue); } - return deviceIds; + return deviceIds.forget(); } static PRInt32 @@ -472,7 +478,7 @@ if (BlacklistNodeGetChildByName(element, NS_LITERAL_STRING("vendor"), getter_AddRefs(dataNode))) { BlacklistNodeToTextValue(dataNode, dataValue); - aDriverInfo.mAdapterVendor = dataValue; + aDriverInfo.mAdapterVendor = BlacklistHexToInt(dataValue); } // @@ -489,7 +495,7 @@ nsCOMPtr devices; if (NS_SUCCEEDED(devicesElement->GetElementsByTagName(NS_LITERAL_STRING("device"), getter_AddRefs(devices)))) { - GfxDeviceFamily* deviceIds = BlacklistDevicesToDeviceFamily(devices); + PRUint32* deviceIds = BlacklistDevicesToDeviceFamily(devices); if (deviceIds) { // Get GfxDriverInfo to adopt the devices array we created. aDriverInfo.mDeleteDevices = true; @@ -542,8 +548,6 @@ if (NS_FAILED(aBlacklistEntries->GetLength(&length))) return; - aDriverInfo.Clear(); - aDriverInfo.SetLength(length); for (PRUint32 i = 0; i < length; ++i) { nsCOMPtr blacklistEntry; if (NS_SUCCEEDED(aBlacklistEntries->Item(i, @@ -551,10 +555,8 @@ blacklistEntry) { GfxDriverInfo di; if (BlacklistEntryToDriverInfo(blacklistEntry, di)) { - aDriverInfo[i] = di; + aDriverInfo.AppendElement(di); } - // Prevent di falling out of scope from destroying the devices. - di.mDeleteDevices = false; } } } @@ -574,6 +576,7 @@ { nsTArray driverInfo; BlacklistEntriesToDriverInfo(blacklistEntries, driverInfo); + EvaluateDownloadedBlacklist(driverInfo); } } @@ -594,8 +597,6 @@ nsresult GfxInfoBase::Init() { - InitGfxDriverInfoShutdownObserver(); - nsCOMPtr os = mozilla::services::GetObserverService(); if (os) { os->AddObserver(this, "blocklist-data-gfxItems", true); @@ -623,11 +624,11 @@ { PRInt32 status = nsIGfxInfo::FEATURE_STATUS_UNKNOWN; - nsAutoString adapterVendorID; - nsAutoString adapterDeviceID; + PRUint32 adapterVendorID = 0; + PRUint32 adapterDeviceID = 0; nsAutoString adapterDriverVersionString; - if (NS_FAILED(GetAdapterVendorID(adapterVendorID)) || - NS_FAILED(GetAdapterDeviceID(adapterDeviceID)) || + if (NS_FAILED(GetAdapterVendorID(&adapterVendorID)) || + NS_FAILED(GetAdapterDeviceID(&adapterDeviceID)) || NS_FAILED(GetAdapterDriverVersion(adapterDriverVersionString))) { return NS_OK; @@ -644,15 +645,15 @@ continue; } - if (!info[i].mAdapterVendor.Equals(GfxDriverInfo::GetDeviceVendor(VendorAll), nsCaseInsensitiveStringComparator()) && - !info[i].mAdapterVendor.Equals(adapterVendorID, nsCaseInsensitiveStringComparator())) { + if (info[i].mAdapterVendor != GfxDriverInfo::allAdapterVendors && + info[i].mAdapterVendor != adapterVendorID) { continue; } - if (info[i].mDevices != GfxDriverInfo::allDevices && info[i].mDevices->Length()) { + if (info[i].mDevices != GfxDriverInfo::allDevices) { bool deviceMatches = false; - for (PRUint32 j = 0; j < info[i].mDevices->Length(); j++) { - if ((*info[i].mDevices)[j].Equals(adapterDeviceID, nsCaseInsensitiveStringComparator())) { + for (const PRUint32 *devices = info[i].mDevices; *devices; ++devices) { + if (*devices == adapterDeviceID) { deviceMatches = true; break; } @@ -665,7 +666,7 @@ bool match = false; -#if defined(XP_WIN) || defined(ANDROID) +#if !defined(XP_MACOSX) switch (info[i].mComparisonOp) { case DRIVER_LESS_THAN: match = driverVersion < info[i].mDriverVersion; @@ -704,7 +705,7 @@ match = true; #endif - if (match || info[i].mDriverVersion == GfxDriverInfo::allDriverVersions) { + if (match) { if (info[i].mFeature == GfxDriverInfo::allFeatures || info[i].mFeature == aFeature) { @@ -754,11 +755,11 @@ if (aOS) os = *aOS; - nsAutoString adapterVendorID; - nsAutoString adapterDeviceID; + PRUint32 adapterVendorID = 0; + PRUint32 adapterDeviceID = 0; nsAutoString adapterDriverVersionString; - if (NS_FAILED(GetAdapterVendorID(adapterVendorID)) || - NS_FAILED(GetAdapterDeviceID(adapterDeviceID)) || + if (NS_FAILED(GetAdapterVendorID(&adapterVendorID)) || + NS_FAILED(GetAdapterDeviceID(&adapterDeviceID)) || NS_FAILED(GetAdapterDriverVersion(adapterDriverVersionString))) { return NS_OK; @@ -771,13 +772,11 @@ // the static list after that. This order is used so that we can later escape // out of static blocks (i.e. if we were wrong or something was patched, we // can back out our static block without doing a release). - PRInt32 status; - if (aDriverInfo.Length()) { - status = FindBlocklistedDeviceInList(aDriverInfo, aSuggestedVersion, aFeature, os); - } else { - if (!mDriverInfo) { - mDriverInfo = new nsTArray(); - } + InitGfxDriverInfoShutdownObserver(); + if (!mDriverInfo) + mDriverInfo = new nsTArray(); + PRInt32 status = FindBlocklistedDeviceInList(aDriverInfo, aSuggestedVersion, aFeature, os); + if (status == nsIGfxInfo::FEATURE_STATUS_UNKNOWN) { status = FindBlocklistedDeviceInList(GetGfxDriverInfo(), aSuggestedVersion, aFeature, os); } diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/xpwidgets/GfxInfoBase.h thunderbird-11.0+build1/mozilla/mozilla/widget/src/xpwidgets/GfxInfoBase.h --- thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/xpwidgets/GfxInfoBase.h 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/widget/src/xpwidgets/GfxInfoBase.h 2012-03-10 00:04:16.000000000 +0000 @@ -48,7 +48,6 @@ #include "nsTArray.h" #include "nsString.h" #include "GfxInfoCollector.h" -#include "nsIGfxInfoDebug.h" namespace mozilla { namespace widget { @@ -56,9 +55,6 @@ class GfxInfoBase : public nsIGfxInfo, public nsIObserver, public nsSupportsWeakReference -#ifdef DEBUG - , public nsIGfxInfoDebug -#endif { public: GfxInfoBase(); diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/xpwidgets/GfxInfoX11.cpp thunderbird-11.0+build1/mozilla/mozilla/widget/src/xpwidgets/GfxInfoX11.cpp --- thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/xpwidgets/GfxInfoX11.cpp 2012-03-09 10:16:47.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/widget/src/xpwidgets/GfxInfoX11.cpp 2012-03-10 00:04:16.000000000 +0000 @@ -54,10 +54,6 @@ namespace mozilla { namespace widget { -#ifdef DEBUG -NS_IMPL_ISUPPORTS_INHERITED1(GfxInfo, GfxInfoBase, nsIGfxInfoDebug) -#endif - // these global variables will be set when firing the glxtest process int glxtest_pipe = 0; pid_t glxtest_pid = 0; @@ -268,70 +264,62 @@ OperatingSystem* aOS /* = nsnull */) { - NS_ENSURE_ARG_POINTER(aStatus); - *aStatus = nsIGfxInfo::FEATURE_STATUS_UNKNOWN; - aSuggestedDriverVersion.SetIsVoid(true); - OperatingSystem os = DRIVER_OS_LINUX; - if (aOS) - *aOS = os; + GetData(); + *aStatus = nsIGfxInfo::FEATURE_STATUS_UNKNOWN; + aSuggestedDriverVersion.SetIsVoid(true); #ifdef MOZ_PLATFORM_MAEMO - *aStatus = nsIGfxInfo::FEATURE_NO_INFO; - // on Maemo, the glxtest probe doesn't build, and we don't really need GfxInfo anyway - return NS_OK; + *aStatus = nsIGfxInfo::FEATURE_NO_INFO; + // on Maemo, the glxtest probe doesn't build, and we don't really need GfxInfo anyway + return NS_OK; #endif - // Don't evaluate any special cases if we're checking the downloaded blocklist. - if (!aDriverInfo.Length()) { - // Only check features relevant to Linux. - if (aFeature == nsIGfxInfo::FEATURE_OPENGL_LAYERS || - aFeature == nsIGfxInfo::FEATURE_WEBGL_OPENGL || - aFeature == nsIGfxInfo::FEATURE_WEBGL_MSAA) { - GetData(); + OperatingSystem os = DRIVER_OS_LINUX; - // Disable OpenGL layers when we don't have texture_from_pixmap because it regresses performance. - if (aFeature == nsIGfxInfo::FEATURE_OPENGL_LAYERS && !mHasTextureFromPixmap) { + // Disable OpenGL layers when we don't have texture_from_pixmap because it regresses performance. + if (aFeature == nsIGfxInfo::FEATURE_OPENGL_LAYERS && !mHasTextureFromPixmap) { *aStatus = nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION; aSuggestedDriverVersion.AssignLiteral(""); return NS_OK; - } + } - // whitelist the linux test slaves' current configuration. - // this is necessary as they're still using the slightly outdated 190.42 driver. - // this isn't a huge risk, as at least this is the exact setting in which we do continuous testing, - // and this only affects GeForce 9400 cards on linux on this precise driver version, which is very few users. - // We do the same thing on Windows XP, see in widget/src/windows/GfxInfo.cpp - if (mIsNVIDIA && - !strcmp(mRenderer.get(), "GeForce 9400/PCI/SSE2") && - !strcmp(mVersion.get(), "3.2.0 NVIDIA 190.42")) - { + // whitelist the linux test slaves' current configuration. + // this is necessary as they're still using the slightly outdated 190.42 driver. + // this isn't a huge risk, as at least this is the exact setting in which we do continuous testing, + // and this only affects GeForce 9400 cards on linux on this precise driver version, which is very few users. + // We do the same thing on Windows XP, see in widget/src/windows/GfxInfo.cpp + if (mIsNVIDIA && + !strcmp(mRenderer.get(), "GeForce 9400/PCI/SSE2") && + !strcmp(mVersion.get(), "3.2.0 NVIDIA 190.42")) + { *aStatus = nsIGfxInfo::FEATURE_NO_INFO; return NS_OK; - } + } - if (mIsMesa) { + if (mIsMesa) { if (version(mMajorVersion, mMinorVersion, mRevisionVersion) < version(7,10,3)) { - *aStatus = nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION; - aSuggestedDriverVersion.AssignLiteral("Mesa 7.10.3"); + *aStatus = nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION; + aSuggestedDriverVersion.AssignLiteral("Mesa 7.10.3"); } - } else if (mIsNVIDIA) { + } else if (mIsNVIDIA) { if (version(mMajorVersion, mMinorVersion, mRevisionVersion) < version(257,21)) { - *aStatus = nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION; - aSuggestedDriverVersion.AssignLiteral("NVIDIA 257.21"); + *aStatus = nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION; + aSuggestedDriverVersion.AssignLiteral("NVIDIA 257.21"); } - } else if (mIsFGLRX) { + } else if (mIsFGLRX) { // FGLRX does not report a driver version number, so we have the OpenGL version instead. // by requiring OpenGL 3, we effectively require recent drivers. if (version(mMajorVersion, mMinorVersion, mRevisionVersion) < version(3, 0)) { - *aStatus = nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION; + *aStatus = nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION; } - } else { + } else { // like on windows, let's block unknown vendors. Think of virtual machines. // Also, this case is hit whenever the GLXtest probe failed to get driver info or crashed. *aStatus = nsIGfxInfo::FEATURE_BLOCKED_DEVICE; - } } - } + + if (aOS) + *aOS = os; return GfxInfoBase::GetFeatureStatusImpl(aFeature, aStatus, aSuggestedDriverVersion, aDriverInfo, &os); } @@ -446,34 +434,32 @@ return NS_ERROR_FAILURE; } -/* readonly attribute DOMString adapterVendorID; */ +/* readonly attribute unsigned long adapterVendorID; */ NS_IMETHODIMP -GfxInfo::GetAdapterVendorID(nsAString & aAdapterVendorID) +GfxInfo::GetAdapterVendorID(PRUint32 *aAdapterVendorID) { - GetData(); - CopyUTF8toUTF16(mVendor, aAdapterVendorID); + *aAdapterVendorID = 0; return NS_OK; } -/* readonly attribute DOMString adapterVendorID2; */ +/* readonly attribute unsigned long adapterVendorID2; */ NS_IMETHODIMP -GfxInfo::GetAdapterVendorID2(nsAString & aAdapterVendorID) +GfxInfo::GetAdapterVendorID2(PRUint32 *aAdapterVendorID) { return NS_ERROR_FAILURE; } -/* readonly attribute DOMString adapterDeviceID; */ +/* readonly attribute unsigned long adapterDeviceID; */ NS_IMETHODIMP -GfxInfo::GetAdapterDeviceID(nsAString & aAdapterDeviceID) +GfxInfo::GetAdapterDeviceID(PRUint32 *aAdapterDeviceID) { - GetData(); - CopyUTF8toUTF16(mRenderer, aAdapterDeviceID); + *aAdapterDeviceID = 0; return NS_OK; } -/* readonly attribute DOMString adapterDeviceID2; */ +/* readonly attribute unsigned long adapterDeviceID2; */ NS_IMETHODIMP -GfxInfo::GetAdapterDeviceID2(nsAString & aAdapterDeviceID) +GfxInfo::GetAdapterDeviceID2(PRUint32 *aAdapterDeviceID) { return NS_ERROR_FAILURE; } @@ -485,40 +471,6 @@ return NS_ERROR_FAILURE; } -#ifdef DEBUG - -// Implement nsIGfxInfoDebug -// We don't support spoofing anything on Linux - -/* void spoofVendorID (in DOMString aVendorID); */ -NS_IMETHODIMP GfxInfo::SpoofVendorID(const nsAString & aVendorID) -{ - CopyUTF16toUTF8(aVendorID, mVendor); - return NS_OK; -} - -/* void spoofDeviceID (in unsigned long aDeviceID); */ -NS_IMETHODIMP GfxInfo::SpoofDeviceID(const nsAString & aDeviceID) -{ - CopyUTF16toUTF8(aDeviceID, mRenderer); - return NS_OK; -} - -/* void spoofDriverVersion (in DOMString aDriverVersion); */ -NS_IMETHODIMP GfxInfo::SpoofDriverVersion(const nsAString & aDriverVersion) -{ - CopyUTF16toUTF8(aDriverVersion, mVersion); - return NS_OK; -} - -/* void spoofOSVersion (in unsigned long aVersion); */ -NS_IMETHODIMP GfxInfo::SpoofOSVersion(PRUint32 aVersion) -{ - // We don't support OS versioning on Linux. There's just "Linux". - return NS_OK; -} - -#endif } // end namespace widget } // end namespace mozilla diff -Nru thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/xpwidgets/GfxInfoX11.h thunderbird-11.0+build1/mozilla/mozilla/widget/src/xpwidgets/GfxInfoX11.h --- thunderbird-11.0~b5+build2/mozilla/mozilla/widget/src/xpwidgets/GfxInfoX11.h 2012-03-09 10:16:48.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/mozilla/widget/src/xpwidgets/GfxInfoX11.h 2012-03-10 00:04:16.000000000 +0000 @@ -58,15 +58,15 @@ NS_SCRIPTABLE NS_IMETHOD GetCleartypeParameters(nsAString & aCleartypeParams); NS_SCRIPTABLE NS_IMETHOD GetAdapterDescription(nsAString & aAdapterDescription); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriver(nsAString & aAdapterDriver); - NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID(nsAString & aAdapterVendorID); - NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID(nsAString & aAdapterDeviceID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID(PRUint32 *aAdapterVendorID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID(PRUint32 *aAdapterDeviceID); NS_SCRIPTABLE NS_IMETHOD GetAdapterRAM(nsAString & aAdapterRAM); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverVersion(nsAString & aAdapterDriverVersion); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverDate(nsAString & aAdapterDriverDate); NS_SCRIPTABLE NS_IMETHOD GetAdapterDescription2(nsAString & aAdapterDescription); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriver2(nsAString & aAdapterDriver); - NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID2(nsAString & aAdapterVendorID); - NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID2(nsAString & aAdapterDeviceID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterVendorID2(PRUint32 *aAdapterVendorID); + NS_SCRIPTABLE NS_IMETHOD GetAdapterDeviceID2(PRUint32 *aAdapterDeviceID); NS_SCRIPTABLE NS_IMETHOD GetAdapterRAM2(nsAString & aAdapterRAM); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverVersion2(nsAString & aAdapterDriverVersion); NS_SCRIPTABLE NS_IMETHOD GetAdapterDriverDate2(nsAString & aAdapterDriverDate); @@ -79,11 +79,6 @@ NS_IMETHOD_(void) GetData(); -#ifdef DEBUG - NS_DECL_ISUPPORTS_INHERITED - NS_DECL_NSIGFXINFODEBUG -#endif - protected: virtual nsresult GetFeatureStatusImpl(PRInt32 aFeature, diff -Nru thunderbird-11.0~b5+build2/mozilla/suite/browser/test/browser/browser_pluginnotification.js thunderbird-11.0+build1/mozilla/suite/browser/test/browser/browser_pluginnotification.js --- thunderbird-11.0~b5+build2/mozilla/suite/browser/test/browser/browser_pluginnotification.js 2012-03-09 09:42:24.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/suite/browser/test/browser/browser_pluginnotification.js 2012-03-09 23:38:42.000000000 +0000 @@ -135,7 +135,12 @@ new TabOpenListener("about:addons", test4, prepareTest5); - EventUtils.synthesizeMouse(gTestBrowser.contentDocument.getElementById("test"), + var pluginNode = gTestBrowser.contentDocument.getElementById("test"); + ok(pluginNode, "Test 3, Found plugin in page"); + var manageLink = gTestBrowser.contentDocument.getAnonymousElementByAttribute(pluginNode, "class", "managePluginsLink"); + ok(manageLink, "Test 3, found 'manage' link in plugin-problem binding"); + + EventUtils.synthesizeMouse(manageLink, 5, 5, {}, gTestBrowser.contentWindow); } diff -Nru thunderbird-11.0~b5+build2/mozilla/suite/browser/test/browser/plugin_test.html thunderbird-11.0+build1/mozilla/suite/browser/test/browser/plugin_test.html --- thunderbird-11.0~b5+build2/mozilla/suite/browser/test/browser/plugin_test.html 2012-03-09 09:42:24.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/suite/browser/test/browser/plugin_test.html 2012-03-09 23:38:42.000000000 +0000 @@ -1,5 +1,5 @@ - + diff -Nru thunderbird-11.0~b5+build2/mozilla/suite/common/tests/browser/browser_346337.js thunderbird-11.0+build1/mozilla/suite/common/tests/browser/browser_346337.js --- thunderbird-11.0~b5+build2/mozilla/suite/common/tests/browser/browser_346337.js 2012-03-09 09:42:24.000000000 +0000 +++ thunderbird-11.0+build1/mozilla/suite/common/tests/browser/browser_346337.js 2012-03-09 23:38:44.000000000 +0000 @@ -132,8 +132,8 @@ ok(compareFormValue(tab2, xpath, fieldList[xpath]), "The value for \"" + xpath + "\" was correctly restored"); let browser = tab.linkedBrowser; - tab.linkedBrowser.addEventListener("pageshow", function(aEvent) { - browser.removeEventListener("pageshow", arguments.callee, true); + tab.linkedBrowser.addEventListener("load", function(aEvent) { + browser.removeEventListener("load", arguments.callee, true); let tab3 = tabbrowser.undoCloseTab(0); tab3.linkedBrowser.addEventListener("pageshow", function(aEvent) { for (let xpath in fieldList)