diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/build/mozconfig.automation thunderbird-trunk-36.0~a1~hg20141126r17147.217518/build/mozconfig.automation
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/build/mozconfig.automation 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/build/mozconfig.automation 2014-11-26 21:44:57.000000000 +0000
@@ -10,13 +10,10 @@
# overridden by setting them earlier in the appropriate mozconfig.
mk_add_options "export MOZ_AUTOMATION_BUILD_SYMBOLS=${MOZ_AUTOMATION_BUILD_SYMBOLS-1}"
-mk_add_options "export MOZ_AUTOMATION_CHECK=${MOZ_AUTOMATION_CHECK-1}"
mk_add_options "export MOZ_AUTOMATION_L10N_CHECK=${MOZ_AUTOMATION_L10N_CHECK-1}"
mk_add_options "export MOZ_AUTOMATION_PACKAGE=${MOZ_AUTOMATION_PACKAGE-1}"
mk_add_options "export MOZ_AUTOMATION_PACKAGE_TESTS=${MOZ_AUTOMATION_PACKAGE_TESTS-1}"
mk_add_options "export MOZ_AUTOMATION_INSTALLER=${MOZ_AUTOMATION_INSTALLER-0}"
-mk_add_options "export MOZ_AUTOMATION_TALOS_SENDCHANGE=${MOZ_AUTOMATION_TALOS_SENDCHANGE-1}"
-mk_add_options "export MOZ_AUTOMATION_UNITTEST_SENDCHANGE=${MOZ_AUTOMATION_UNITTEST_SENDCHANGE-1}"
mk_add_options "export MOZ_AUTOMATION_UPDATE_PACKAGING=${MOZ_AUTOMATION_UPDATE_PACKAGING-0}"
mk_add_options "export MOZ_AUTOMATION_UPLOAD=${MOZ_AUTOMATION_UPLOAD-1}"
mk_add_options "export MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-0}"
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/build/mozconfig.vs2010-common thunderbird-trunk-36.0~a1~hg20141126r17147.217518/build/mozconfig.vs2010-common
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/build/mozconfig.vs2010-common 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/build/mozconfig.vs2010-common 1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-# Pymake needs Windows-style paths. Use cmd.exe to hack around this.
-mk_export_correct_style() {
- mk_add_options "export $1=$(cmd.exe //c echo %$1%)"
-}
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/build/mozconfig.vs-common thunderbird-trunk-36.0~a1~hg20141126r17147.217518/build/mozconfig.vs-common
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/build/mozconfig.vs-common 1970-01-01 00:00:00.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/build/mozconfig.vs-common 2014-11-26 21:44:57.000000000 +0000
@@ -0,0 +1,4 @@
+# Pymake needs Windows-style paths. Use cmd.exe to hack around this.
+mk_export_correct_style() {
+ mk_add_options "export $1=$(cmd.exe //c echo %$1%)"
+}
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/build/unix/uniq.pl thunderbird-trunk-36.0~a1~hg20141126r17147.217518/build/unix/uniq.pl
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/build/unix/uniq.pl 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/build/unix/uniq.pl 1970-01-01 00:00:00.000000000 +0000
@@ -1,91 +0,0 @@
-#!/usr/bin/env perl
-
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-##----------------------------##
-##---] CORE/CPAN INCLUDES [---##
-##----------------------------##
-use strict;
-use warnings;
-use Getopt::Long;
-
-##-------------------##
-##---] EXPORTS [---##
-##-------------------##
-our $VERSION = qw(1.1);
-
-##-------------------##
-##---] GLOBALS [---##
-##-------------------##
-my %argv;
-my $modver = $Getopt::Long::VERSION || 0;
-my $isOldGetopt = ($modver eq '2.25') ? 1 : 0;
-
-###########################################################################
-## Intent: Script init function
-###########################################################################
-sub init
-{
- if ($isOldGetopt)
- {
- # mozilla.build/mingw perl in need of an upgrade
- # emulate Getopt::Long switch|short:init
- foreach (qw(debug regex sort))
- {
- if (defined($argv{$_}))
- {
- $argv{$_} ||= 1;
- }
- }
- }
-} # init
-
-##----------------##
-##---] MAIN [---##
-##----------------##
-my @args = ($isOldGetopt)
- ? qw(debug|d regex|r sort|s)
- : qw(debug|d:1 regex|r:1 sort|s:1)
- ;
-
-unless(GetOptions(\%argv, @args))
-{
- print "Usage: $0\n";
- print " --sort Sort list elements early\n";
- print " --regex Exclude subdirs by pattern\n";
-}
-
-init();
-my $debug = $argv{debug} || 0;
-
-my %seen;
-my @out;
-my @in = ($argv{sort}) ? sort @ARGV : @ARGV;
-
-foreach my $d (@in)
-{
- next if ($seen{$d}++);
-
- print " arg is $d\n" if ($debug);
-
- if ($argv{regex})
- {
- my $found = 0;
- foreach my $dir (@out)
- {
- my $dirM = quotemeta($dir);
- $found++, last if ($d eq $dir || $d =~ m!^${dirM}\/!);
- }
- print "Adding $d\n" if ($debug && !$found);
- push @out, $d if (!$found);
- } else {
- print "Adding: $d\n" if ($debug);
- push(@out, $d);
- }
-}
-
-print "@out\n"
-
-# EOF
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/build/win32/mozconfig.vs2010 thunderbird-trunk-36.0~a1~hg20141126r17147.217518/build/win32/mozconfig.vs2010
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/build/win32/mozconfig.vs2010 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/build/win32/mozconfig.vs2010 2014-11-26 21:44:57.000000000 +0000
@@ -4,7 +4,7 @@
export PATH="/d/msvs10/VSTSDB/Deploy:/d/msvs10/Common7/IDE/:/d/msvs10/VC/BIN:/d/msvs10/Common7/Tools:/d/msvs10/VC/VCPackages:${PATH}"
export WIN32_REDIST_DIR=/d/msvs10/VC/redist/x86/Microsoft.VC100.CRT
-. $topsrcdir/build/mozconfig.vs2010-common
+. $topsrcdir/build/mozconfig.vs-common
mk_export_correct_style LIB
mk_export_correct_style LIBPATH
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/build/win32/mozconfig.vs2010-win64 thunderbird-trunk-36.0~a1~hg20141126r17147.217518/build/win32/mozconfig.vs2010-win64
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/build/win32/mozconfig.vs2010-win64 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/build/win32/mozconfig.vs2010-win64 2014-11-26 21:44:57.000000000 +0000
@@ -25,7 +25,7 @@
## WindowsSDKDir ##
export WINDOWSSDKDIR="/c/Program Files (x86)/Windows Kits/8.0/"
-. $topsrcdir/build/mozconfig.vs2010-common
+. $topsrcdir/build/mozconfig.vs-common
mk_export_correct_style LIB
mk_export_correct_style LIBPATH
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/build/win64/mozconfig.vs2010 thunderbird-trunk-36.0~a1~hg20141126r17147.217518/build/win64/mozconfig.vs2010
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/build/win64/mozconfig.vs2010 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/build/win64/mozconfig.vs2010 2014-11-26 21:44:57.000000000 +0000
@@ -31,7 +31,7 @@
export LD=c:/tools/msvs10/VC/BIN/x86_amd64/link.exe
fi
-. $topsrcdir/build/mozconfig.vs2010-common
+. $topsrcdir/build/mozconfig.vs-common
mk_export_correct_style LIB
mk_export_correct_style LIBPATH
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/calendar/base/content/agenda-listbox.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/calendar/base/content/agenda-listbox.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/calendar/base/content/agenda-listbox.js 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/calendar/base/content/agenda-listbox.js 2014-11-26 21:44:57.000000000 +0000
@@ -12,7 +12,7 @@
var agendaListbox = {
agendaListboxControl: null,
- pendingRefresh: null,
+ mPendingRefreshJobs: null,
kDefaultTimezone: null,
showsToday: false
};
@@ -33,6 +33,7 @@
var soondays = Preferences.get("calendar.agendaListbox.soondays", 5);
this.soon = new Synthetic(showSoonHeader, soondays);
this.periods = [this.today, this.tomorrow, this.soon];
+ this.mPendingRefreshJobs = new Map();
// Make sure the agenda listbox is unloaded
var self = this;
@@ -603,35 +604,86 @@
*/
agendaListbox.refreshCalendarQuery =
function refreshCalendarQuery(aStart, aEnd, aCalendar) {
- let pendingRefresh = cal.wrapInstance(this.pendingRefresh, Components.interfaces.calIOperation);
- if (this.pendingRefresh) {
- if (pendingRefresh) {
- this.pendingRefresh = null;
- pendingRefresh.cancel(null);
- } else {
- return;
- }
- }
- if (!(aStart || aEnd || aCalendar)) {
- this.removeListItems();
- }
- if (!aStart) {
- aStart = this.getStart();
- }
- if (!aEnd) {
- aEnd = this.getEnd();
- }
- if (aStart && aEnd) {
- var filter = this.calendar.ITEM_FILTER_CLASS_OCCURRENCES |
- this.calendar.ITEM_FILTER_TYPE_EVENT;
- this.pendingRefresh = true;
- let refreshCalendar = aCalendar || this.calendar;
- pendingRefresh = refreshCalendar.getItems(filter, 0, aStart, aEnd,
- this.calendarOpListener);
- if (pendingRefresh && pendingRefresh.isPending) { // support for calIOperation
- this.pendingRefresh = pendingRefresh;
+ let refreshJob = {
+ agendaListbox: this,
+ calendar: null,
+ calId: null,
+ operation: null,
+ cancelled: false,
+
+ onOperationComplete: function(aCalendar, aStatus, aOperationType, aId, aDateTime) {
+ if (this.agendaListbox.mPendingRefreshJobs.has(this.calId)) {
+ this.agendaListbox.mPendingRefreshJobs.delete(this.calId);
+ }
+
+ if (!this.cancelled) {
+ setCurrentEvent();
+ }
+ },
+
+ onGetResult: function(aCalendar, aStatus, aItemType, aDetail, aCount, aItems) {
+ if (this.cancelled || !Components.isSuccessCode(aStatus)) {
+ return;
+ }
+ for (let item of aItems) {
+ this.agendaListbox.addItem(item);
+ }
+ },
+
+ cancel: function() {
+ this.cancelled = true;
+ if (this.operation && this.operation.isPending) {
+ this.operation.cancel();
+ this.operation = null;
+ }
+ },
+
+ execute: function(aStart, aEnd, aCalendar) {
+ if (!(aStart || aEnd || aCalendar)) {
+ this.agendaListbox.removeListItems();
+ }
+
+ if (!aCalendar) {
+ aCalendar = this.agendaListbox.calendar;
+ }
+ if (!aStart) {
+ aStart = this.agendaListbox.getStart();
+ }
+ if (!aEnd) {
+ aEnd = this.agendaListbox.getEnd();
+ }
+ if (!(aStart || aEnd || aCalendar)) {
+ return;
+ }
+
+ if (aCalendar.type == "composite") {
+ // we're refreshing from the composite calendar, so we can cancel
+ // all other pending refresh jobs.
+ this.calId = "composite";
+ for (let job of this.agendaListbox.mPendingRefreshJobs.values()) {
+ job.cancel();
+ }
+ this.agendaListbox.mPendingRefreshJobs.clear();
+ } else {
+ this.calId = aCalendar.id;
+ if (this.agendaListbox.mPendingRefreshJobs.has(this.calId)) {
+ this.agendaListbox.mPendingRefreshJobs.get(this.calId).cancel();
+ this.agendaListbox.mPendingRefreshJobs.delete(this.calId);
+ }
+ }
+ this.calendar = aCalendar;
+
+ let filter = this.calendar.ITEM_FILTER_CLASS_OCCURRENCES |
+ this.calendar.ITEM_FILTER_TYPE_EVENT;
+ let op = this.calendar.getItems(filter, 0, aStart, aEnd, this);
+ if (op && op.isPending) {
+ this.operation = op;
+ this.agendaListbox.mPendingRefreshJobs.set(this.calId, this);
+ }
}
- }
+ };
+
+ refreshJob.execute(aStart, aEnd, aCalendar);
};
/**
@@ -830,29 +882,6 @@
};
/**
- * Called when all items have been retrieved from the calendar.
- * @see calIOperationListener
- */
-agendaListbox.calendarOpListener.onOperationComplete =
-function listener_onOperationComplete(calendar, status, optype, id,
- detail) {
- // signal that the current operation finished.
- this.agendaListbox.pendingRefresh = null;
- setCurrentEvent();
-};
-
-/**
- * Called when an item has been retrieved, adds all items to the agenda listbox.
- * @see calIOperationListener
- */
-agendaListbox.calendarOpListener.onGetResult =
-function listener_onGetResult(calendar, status, itemtype, detail, count, items) {
- if (!Components.isSuccessCode(status))
- return;
- items.forEach(this.agendaListbox.addItem, this.agendaListbox);
-};
-
-/**
* Calendar and composite observer, used to keep agenda listbox up to date.
* @see calIObserver
* @see calICompositeObserver
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/calendar/base/content/calendar-calendars-list.xul thunderbird-trunk-36.0~a1~hg20141126r17147.217518/calendar/base/content/calendar-calendars-list.xul
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/calendar/base/content/calendar-calendars-list.xul 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/calendar/base/content/calendar-calendars-list.xul 2014-11-26 21:44:57.000000000 +0000
@@ -14,6 +14,17 @@
+
+
+
+
">
+
+El navegador evitĂł que esta página se cargue de esta forma porque tiene una polĂtica de seguridad que la deshabilita.">
La página que está tratando de ver no puede mostrarse porque se detectó un error en la transmisión de los datos.
Contacte a los dueños del sitio web para informarles de este problema.
Estos tipos de falsificaciones web son usados en estafas conocidas como ataques de phishing, en los que páginas web y correos electrónicos fraudulentos son usados para imitar fuentes en las que puede confiar.
">
-
-&brandShortName; evitĂł que se cargue esta página de esta forma porque tiene una polĂtica de seguridad de contenido que no lo permite.">
+
+&brandShortName; evitĂł que se cargue esta página de esta forma porque tiene una polĂtica de seguridad de contenido que no lo permite.">
El contenido que está tratando de ver no puede mostrarse porque se detectó un error en la transmisión de los datos.
Contacte a los dueños para inormarles de este problema.
">
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/es-AR/webapprt/webapprt/overrides/appstrings.properties thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/es-AR/webapprt/webapprt/overrides/appstrings.properties
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/es-AR/webapprt/webapprt/overrides/appstrings.properties 2014-11-14 09:38:57.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/es-AR/webapprt/webapprt/overrides/appstrings.properties 2014-11-26 21:47:24.000000000 +0000
@@ -30,6 +30,6 @@
externalProtocolLaunchBtn=Iniciar aplicaciĂłn
malwareBlocked=El sitio %S ha sido informado como un sitio de ataque y ha sido bloqueado basado en sus preferencias de seguridad.
phishingBlocked=El sitio web %S ha sido reportado como un sitio falso diseñado para engañar usuarios para que compartan información personal o financiera.
-cspFrameAncestorBlocked=This application tried to access a resource that has a content security policy that prevents it from being embedded in this way.
+cspBlocked=Esta aplicaciĂłn trata de acceder a un recurso que tiene una polĂtica de seguridad de contenido que evita sea cargada de esta forma.
corruptedContentError=The application cannot continue loading because an error in the data transmission was detected.
remoteXUL=This application tried to use an unsupported technology that is no longer available.
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/es-ES/b2g/chrome/overrides/appstrings.properties thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/es-ES/b2g/chrome/overrides/appstrings.properties
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/es-ES/b2g/chrome/overrides/appstrings.properties 2014-11-14 09:38:59.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/es-ES/b2g/chrome/overrides/appstrings.properties 2014-11-26 21:47:27.000000000 +0000
@@ -29,6 +29,6 @@
externalProtocolLaunchBtn = Ejecutar aplicaciĂłn
malwareBlocked = El sitio en %S ha sido identificado como un sitio atacante y ha sido bloqueado basándose en sus preferencias de seguridad.
phishingBlocked = El sitio web en %S ha sido identificado como una copia fraudulenta que ha sido diseñada para engañar a los usuarios para introducir información personal o bancaria.
-cspFrameAncestorBlocked = Esta página tiene una polĂtica de seguridad de contenido que impide que pueda ser incrustado de esta forma.
+cspBlocked = Esta página tiene una polĂtica de seguridad de contenido que impide que pueda ser cargada de esta forma.
corruptedContentError = La página que está intentando ver no puede ser mostrada porque se detectó un error en la transmisión de los datos.
remoteXUL = Esta página usa una tecnologĂa no admitida que ya no está disponible por defecto en Firefox.
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/es-ES/dom/chrome/appstrings.properties thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/es-ES/dom/chrome/appstrings.properties
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/es-ES/dom/chrome/appstrings.properties 2014-11-14 09:38:59.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/es-ES/dom/chrome/appstrings.properties 2014-11-26 21:47:27.000000000 +0000
@@ -29,6 +29,6 @@
externalProtocolLaunchBtn = Ejecutar aplicaciĂłn
malwareBlocked = El sitio en %S ha sido identificado como un sitio atacante y ha sido bloqueado basándose en sus preferencias de seguridad.
phishingBlocked = El sitio web en %S ha sido identificado como una suplantación de web diseñada para engañar a los usuarios y que compartan información personal o financiera.
-cspFrameAncestorBlocked = Esta página tiene una polĂtica de seguridad de contenido que impide que pueda ser incrustado de esta forma.
+cspBlocked = Esta página tiene una polĂtica de seguridad de contenido que impide que se cargue de esta forma.
corruptedContentError = La página que está intentando ver no puede mostrarse porque se ha detectado un error en la transmisión de datos.
remoteXUL = Esta página usa una tecnologĂa no admitida que ya no está disponible por defecto.
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/es-ES/dom/chrome/dom/dom.properties thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/es-ES/dom/chrome/dom/dom.properties
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/es-ES/dom/chrome/dom/dom.properties 2014-11-14 09:38:59.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/es-ES/dom/chrome/dom/dom.properties 2014-11-26 21:47:27.000000000 +0000
@@ -143,3 +143,4 @@
KeyNameDeadKeysWarning = Los valores de KeyboardEvent.key que comienzan con "Dead" es obsoleto y será convertido a simplemente "Dead". Para más ayuda vea https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.key
ImportXULIntoContentWarning = Importar nodos XUL en un documento de contenido está desaprobado. Esta funcionalidad puede desaparecer pronto.
XMLDocumentLoadPrincipalMismatch = El uso de document.load está prohibido en documentos que vienen de otras ventanas. Sólo la ventana en la que se ha creado un documento puede llamar a .load en ese documento. Es preferible usar XMLHttpRequest en su lugar.
+IndexedDBTransactionAbortNavigation = Se ha anulado una transacción de IndexedDB incompleta debido a navegación entre páginas.
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/es-ES/dom/chrome/netError.dtd thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/es-ES/dom/chrome/netError.dtd
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/es-ES/dom/chrome/netError.dtd 2014-11-14 09:38:59.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/es-ES/dom/chrome/netError.dtd 2014-11-26 21:47:27.000000000 +0000
@@ -64,8 +64,8 @@
Introducir información personal en esta página puede dar lugar a una suplantación de identidad u otro fraude.
Estos tipos de falsificaciones de webs se usan en timos conocidos como ataques de phishing, en los cuales se usan páginas web y mensajes de correo electrĂłnico fraudulentos para imitar fuentes en las que se confĂa.
">
-
-El navegador ha impedido que esta página se cargue de esta forma porque la página tiene una polĂtica de seguridad de contenido que no lo permite.">
+
+El navegador ha impedido que esta página se cargue de esta forma porque la página tiene una polĂtica de seguridad de contenido que lo impide.">
La página que está intentando ver no puede mostrarse porque se ha detectado un error en la transmisión de datos.
Contacte con los propietarios del sitio web para informarles de este problema.
Questo tipo di contraffazione viene sfruttato nei cosiddetti attacchi phishing, dove vengono utilizzate in modo fraudolento pagine web ed email per imitare fonti di cui solitamente ci si fida.
">
-
-Il browser ha bloccato il caricamento della pagina con questa modalitĂ in quanto include dei criteri sulla sicurezza dei contenuti che lo impediscono.">
+
+Il browser ha bloccato il caricamento della pagina con questa modalitĂ in quanto include dei criteri sulla sicurezza dei contenuti che lo impediscono.">
La pagina richiesta non può essere visualizzata a causa di un errore rilevato durante la trasmissione dei dati.
Contattare il proprietario del sito web e segnalare il problema.
">
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/it/webapprt/webapprt/overrides/appstrings.properties thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/it/webapprt/webapprt/overrides/appstrings.properties
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/it/webapprt/webapprt/overrides/appstrings.properties 2014-11-14 09:40:04.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/it/webapprt/webapprt/overrides/appstrings.properties 2014-11-26 21:48:06.000000000 +0000
@@ -29,6 +29,6 @@
externalProtocolLaunchBtn = Avvia applicazione
malwareBlocked = Il sito web %S è stato segnalato come sito web malevolo ed è stato bloccato sulla base delle impostazioni di sicurezza.
phishingBlocked = Il sito web %S è stato segnalato come sito contraffatto, realizzato per indurre gli utenti a rivelare informazioni personali o finanziarie.
-cspFrameAncestorBlocked = Tentativo da parte dell’applicazione di accedere a una risorsa con criteri sulla sicurezza dei contenuti che ne impediscono l’inclusione con questa modalità .
+cspBlocked = Tentativo da parte dell’applicazione di accedere a una risorsa con criteri sulla sicurezza dei contenuti che ne impediscono il caricamento con questa modalità .
corruptedContentError = Impossibile continuare il caricamento dell’applicazione a causa di un errore rilevato durante la trasmissione dei dati.
remoteXUL = Questa applicazione ha cercato di utilizzare una tecnologia non supportata e non è più disponibile.
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/nl/dom/chrome/appstrings.properties thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/nl/dom/chrome/appstrings.properties
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/nl/dom/chrome/appstrings.properties 2014-11-14 09:40:20.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/nl/dom/chrome/appstrings.properties 2014-11-26 21:48:29.000000000 +0000
@@ -30,6 +30,6 @@
externalProtocolLaunchBtn=Toepassing starten
malwareBlocked=De website op %S is gerapporteerd als een aanvalsite en is geblokkeerd op basis van uw beveiligingsinstellingen.
phishingBlocked=De website op %S is gerapporteerd als een vervalsing, ontworpen om gebruikers te misleiden en persoonlijke of financiële gegevens te laten delen.
-cspFrameAncestorBlocked=Deze pagina heeft een inhoudbeveiligingsbeleid dat embedding op deze manier voorkomt.
+cspBlocked=Deze pagina heeft een inhoudbeveiligingsbeleid dat laden op deze manier voorkomt.
corruptedContentError=De pagina die u wilt bekijken kan niet worden weergegeven, omdat er een fout in de gegevensoverdracht is gedetecteerd.
remoteXUL=Deze pagina gebruikt een niet-ondersteunde technologie die niet meer standaard beschikbaar is.
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/nl/dom/chrome/dom/dom.properties thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/nl/dom/chrome/dom/dom.properties
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/nl/dom/chrome/dom/dom.properties 2014-11-14 09:40:20.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/nl/dom/chrome/dom/dom.properties 2014-11-26 21:48:29.000000000 +0000
@@ -209,3 +209,5 @@
KeyNameDeadKeysWarning=KeyboardEvent.key-waarden die met “Dead” beginnen zijn verouderd en worden samengevoegd tot alleen “Dead”. Zie https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.key voor meer informatie
ImportXULIntoContentWarning=Het importeren van XUL-nodes in een inhoudsdocument wordt niet meer ondersteund. Deze functionaliteit kan binnenkort worden verwijderd.
XMLDocumentLoadPrincipalMismatch=Gebruik van document.load is verboden bij documenten uit andere vensters. Alleen het venster waarin een document is gemaakt mag .load aanroepen voor dat document. Gebruik in plaats daarvan bij voorkeur XMLHttpRequest.
+# LOCALIZATION NOTE: Do not translate "IndexedDB".
+IndexedDBTransactionAbortNavigation=Een onvoltooide IndexedDB-transactie is afgebroken vanwege paginanavigatie.
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/nl/dom/chrome/layout/css.properties thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/nl/dom/chrome/layout/css.properties
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/nl/dom/chrome/layout/css.properties 2014-11-14 09:40:20.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/nl/dom/chrome/layout/css.properties 2014-11-26 21:48:29.000000000 +0000
@@ -56,7 +56,7 @@
PECounterASWeight=Elk gewicht in de additive-symbols-descriptor moet kleiner zijn dan het voorgaande gewicht.
PEClassSelEOF=klassenaam
PEClassSelNotIdent=â€%1$S’ gevonden waar identificator voor klasseselector verwacht.
-PECoordinatePair=â€%1$S’ gevonden waar coördinaten verwacht.
+PECoordinatePair=â€%1$S’ gevonden waar coördinatenpaar verwacht.
PETypeSelEOF=elementtype
PETypeSelNotType=â€%1$S’ gevonden waar elementnaam of â€*’ verwacht.
PEUnknownNamespacePrefix=Onbekende namespace-prefix â€%1$S’.
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/nl/dom/chrome/netError.dtd thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/nl/dom/chrome/netError.dtd
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/l10n/nl/dom/chrome/netError.dtd 2014-11-14 09:40:20.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/l10n/nl/dom/chrome/netError.dtd 2014-11-26 21:48:29.000000000 +0000
@@ -87,8 +87,8 @@
Dit soort webvervalsingen wordt gebruikt in e-mailscams die bekend staan als phishingaanvallen, waarbij frauduleuze webpagina’s en e-mails worden gebruikt om bronnen die u misschien vertrouwt na te bootsen.
">
-
-De browser voorkomt dat de pagina op deze manier wordt geladen, omdat de pagina een inhoudbeveiligingsbeleid heeft dat dit niet toestaat.">
+
+De browser heeft voorkomen dat de pagina op deze manier werd geladen, omdat de pagina een inhoudbeveiligingsbeleid heeft dat dit niet toestaat.">
De pagina die u wilt bekijken kan niet worden weergegeven, omdat er een fout in de gegevensoverdracht is gedetecteerd.
Neem contact op met de website-eigenaars om ze te informeren over dit probleem.
These types of web forgeries are used in scams known as phishing attacks, in which fraudulent web pages and emails are used to imitate sources you may trust.
">
-
-&brandShortName; prevented this page from loading in this way because the page has a content security policy that disallows it.">
+
+&brandShortName; prevented this page from loading in this way because the page has a content security policy that disallows it.">
The content you are trying to view cannot be shown because an error in the data transmission was detected.
Please contact the owners to inform them of this problem.
">
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/amazondotcom.xml thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/amazondotcom.xml
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/amazondotcom.xml 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/amazondotcom.xml 2014-11-26 21:44:58.000000000 +0000
@@ -10,12 +10,9 @@
+ resultdomain="amazon.com"
+ rel="searchform">
-
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/aol-web-search.xml thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/aol-web-search.xml
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/aol-web-search.xml 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/aol-web-search.xml 2014-11-26 21:44:58.000000000 +0000
@@ -6,15 +6,12 @@
AOL Web SearchThe AOL Search engine delivers great web search results, enhanced by Google, plus relevant multimedia results delivered on a single page-so you can search less and discover more.UTF-8
-data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%10%00%00%00%10%08%06%00%00%00%1F%F3%FFa%00%00%00%06bKGD%00%FF%00%FF%00%FF%A0%BD%A7%93%00%00%00%09pHYs%00%00%00H%00%00%00H%00F%C9k%3E%00%00%00%FAIDAT8%CB%9D%D3%B1q%C2%40%10%85%E1%0F%8F%0B%A0%04%97%00%1D%40%05%C6%01%B9%95*1%AA%C0C%05%E0%84%D4%E4%0A%0C%15H%EE%40%1D%98%12%D4%81%1D%E84%C8B%60%C9%2F9%AD%EE%EE%9F%DD%B7%7B%23%B0%DC%7D%A3D%22%8D%F7%06h%D4%00%D4*%02(%EF%03%B8%EB%F87Af%B9%7B%EF%03%B8o%C59%DE%A4%F1%E1%3F%25%EC%91%60%83%87%B0%FF%89m%F8%5Et%F9S%032%3C%E1%0B%E3%D6%99%02s%7C%848%91%C6E%1B0%C1%0B%9E%AFd%9A%E0%D4%80l%B1%96%C6eebE%9C%DC(%F51dRk%15%B2%FD%D5%85%B1a*%CF%80%AA%84%FC%C6%E1%23f%8Dx%8D)%E76n%10aq%C5%C4%03%B2%B0%26%D2%F8To%D6%80Y0q%8AW%97m%1C%23%EA%9A%CE%E6%20%AD%82%91%5D%83T%AA%BAp%A1%AE%B7Pk%2F%8D%A3%BF%9C%ECz%0B9%E6%7D.7K(%C3%3A%F89%FF%00_%82G%C3%D5%0E(%3E%00%00%00%00IEND%AEB%60%82
+data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%10%00%00%00%10%08%06%00%00%00%1F%F3%FFa%00%00%00%06bKGD%00%FF%00%FF%00%FF%A0%BD%A7%93%00%00%00%09pHYs%00%00%00H%00%00%00H%00F%C9k%3E%00%00%00%FAIDAT8%CB%9D%D3%B1q%C2%40%10%85%E1%0F%8F%0B%A0%04%97%00%1D%40%05%C6%01%B9%95*1%AA%C0C%05%E0%84%D4%E4%0A%0C%15H%EE%40%1D%98%12%D4%81%1D%E84%C8B%60%C9%2F9%AD%EE%EE%9F%DD%B7%7B%23%B0%DC%7D%A3D%22%8D%F7%06h%D4%00%D4*%02(%EF%03%B8%EB%F87Af%B9%7B%EF%03%B8o%C59%DE%A4%F1%E1%3F%25%EC%91%60%83%87%B0%FF%89m%F8%5Et%F9S%032%3C%E1%0B%E3%D6%99%02s%7C%848%91%C6E%1B0%C1%0B%9E%AFd%9A%E0%D4%80l%B1%96%C6eebE%9C%DC(%F51dRk%15%B2%FD%D5%85%B1a*%CF%80%AA%84%FC%C6%E1%23f%8Dx%8D)%E76n%10aq%C5%C4%03%B2%B0%26%D2%F8To%D6%80Y0q%8AW%97m%1C%23%EA%9A%CE%E6%20%AD%82%91%5D%83T%AA%BAp%A1%AE%B7Pk%2F%8D%A3%BF%9C%ECz%0B9%E6%7D.7K(%C3%3A%F89%FF%00_%82G%C3%D5%0E(%3E%00%00%00%00IEND%AEB%60%82
+ resultdomain="aol.com"
+ rel="searchform">
-
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/bing.xml thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/bing.xml
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/bing.xml 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/bing.xml 2014-11-26 21:44:58.000000000 +0000
@@ -11,7 +11,10 @@
-
+
@@ -21,8 +24,4 @@
-
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/eBay.xml thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/eBay.xml
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/eBay.xml 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/eBay.xml 2014-11-26 21:44:58.000000000 +0000
@@ -10,11 +10,8 @@
+ resultdomain="ebay.com"
+ rel="searchform">
-
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/google.xml thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/google.xml
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/google.xml 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/google.xml 2014-11-26 21:44:58.000000000 +0000
@@ -9,18 +9,17 @@
data:image/png;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%2BTzvb2%2B%2Fne4dFJeBw0egA%2FfAJAfAA8ewBBegAAAAD%2B%2FPtft98Mp%2BwWsfAVsvEbs%2FQeqvF8xO7%2F%2F%2F63yqkxdgM7gwE%2FggM%2BfQA%2BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%2FQvq%2Bfz%2Bf%2F%2B%2B%2FZKhR05hgBBhQI8hgBAgAI9ewD0%2B%2Fg3pswAtO8Cxf4Kw%2FsJvvYAqupKsNv%2B%2Fv7%2F%2FP5VkSU0iQA7jQA9hgBDgQU%2BfQH%2F%2Ff%2FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%2Fv%2Fg6Nc%2Fhg05kAA8jAM9iQI%2BhQA%2BgQDQu6b97uv%2F%2F%2F7V8Pqw3eiWz97q8%2Ff%2F%2F%2F%2F7%2FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%2F%2B%2F%2F39%2F%2F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%2F%2B%2Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%2BooT8%2Fv%2F7%2F%2F%2FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%2BhwGfXifWvqz%2B%2Ff%2F58u%2Fev6Dt4tr%2B%2F%2F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%2FkwBChwHt4dv%2F%2F%2F728ei1bCi7VAC5XQ7kz7n%2F%2F%2F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%2F%2F%2F9%2F%2F%2FSqYK5UwDKZAS9WALIkFn%2B%2F%2F3%2F%2BP8oKccGGcIRJrERILYFEMwAAuEAAdX%2F%2Ff7%2F%2FP%2B%2BfDvGXQLIZgLEWgLOjlf7%2F%2F%2F%2F%2F%2F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%2F%2F%2F%2F7%2B%2Fu2bCTIYwDPZgDBWQDSr4P%2F%2Fv%2F%2F%2FP5GRuABAPkAA%2FwBAfkDAPAAAesAAN%2F%2F%2B%2Fz%2F%2F%2F64g1C5VwDMYwK8Yg7y5tz8%2Fv%2FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%2F%2FPvi28ymXyChTATRrIb8%2F%2F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA
-
+
-
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/twitter.xml thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/twitter.xml
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/twitter.xml 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/twitter.xml 2014-11-26 21:44:58.000000000 +0000
@@ -7,12 +7,11 @@
Realtime Twitter SearchUTF-8data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAiklEQVR42mNgGDxgzTsBnOJr3hUAcQMQJyCJCaArXA9XgCp+Hoj/I+H9QHwfUy1EAqRgPtz0Ne8M0DTD8HuwHJoBCWgKQAb14zAgAJtf9+NQjIlxBJYB1GZCBpzHFxMNRBiSgM8AByyhTqTtqF5Zj1UzrrQCTRjz8Th/Pm7NmLY3IGFQ1CowDG8AAK5P9364gzTrAAAAAElFTkSuQmCC
-
-
-
+ template="https://twitter.com/search"
+ rel="searchform">
+
+
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/wikipedia.xml thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/wikipedia.xml
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/wikipedia.xml 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/wikipedia.xml 2014-11-26 21:44:58.000000000 +0000
@@ -14,11 +14,8 @@
+ resultdomain="wikipedia.org"
+ rel="searchform">
-
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/yahoo.xml thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/yahoo.xml
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/locales/en-US/searchplugins/yahoo.xml 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/locales/en-US/searchplugins/yahoo.xml 2014-11-26 21:44:58.000000000 +0000
@@ -17,12 +17,9 @@
+ resultdomain="yahoo.com"
+ rel="searchform">
-
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/test/mozmill/addrbook/test-address-book.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/test/mozmill/addrbook/test-address-book.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/test/mozmill/addrbook/test-address-book.js 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/test/mozmill/addrbook/test-address-book.js 2014-11-26 21:44:58.000000000 +0000
@@ -14,7 +14,7 @@
'prompt-helpers'];
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource:///modules/Services.jsm");
+Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource:///modules/mailServices.js");
let abController = null;
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/test/mozmill/composition/test-attachment-reminder.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/test/mozmill/composition/test-attachment-reminder.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/test/mozmill/composition/test-attachment-reminder.js 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/test/mozmill/composition/test-attachment-reminder.js 2014-11-26 21:44:58.000000000 +0000
@@ -22,16 +22,19 @@
const kBoxId = "attachmentNotificationBox";
const kNotificationId = "attachmentReminder";
+const kReminderPref = "mail.compose.attachment_reminder";
function setupModule(module) {
for (let lib of MODULE_REQUIRES) {
collector.getModule(lib).installInto(module);
}
-};
+
+ assert_true(Services.prefs.getBoolPref(kReminderPref));
+}
function setupComposeWin(aCwc, toAddr, subj, body) {
- aCwc.type(null, toAddr);
- aCwc.type(aCwc.eid("msgSubject"), subj)
+ aCwc.type(aCwc.eid("addressCol2#1"), toAddr);
+ aCwc.type(aCwc.eid("msgSubject"), subj);
aCwc.type(aCwc.eid("content-frame"), body);
}
@@ -101,6 +104,7 @@
return notification.querySelector("#attachmentKeywords").getAttribute("value");
}
+
/**
* Test that the attachment reminder works, in general.
*/
@@ -405,10 +409,10 @@
* Assert if there is any notification in the compose window.
*
* @param aCwc Compose Window Controller
- * @param aValue True if notification should exist
+ * @param aValue True if notification should exist.
* False otherwise.
*/
-function assert_no_notification(aCwc, aValue)
+function assert_any_notification(aCwc, aValue)
{
let notification = aCwc.e(kBoxId).currentNotification;
if ((notification == null) == aValue)
@@ -427,7 +431,7 @@
"There is no body. I hope you don't mind!");
// There should be no notification yet.
- assert_no_notification(cwc, false);
+ assert_any_notification(cwc, false);
// Bring up the FileLink notification.
let kOfferThreshold = "mail.compose.big_attachments.threshold_kb";
@@ -505,6 +509,84 @@
}
/**
+ * Bug 1099866
+ * Test proper behaviour of attachment reminder when keyword reminding
+ * is turned off.
+ */
+function test_disabled_attachment_reminder() {
+
+ Services.prefs.setBoolPref(kReminderPref, false);
+
+ // Open a sample message with no attachment keywords.
+ let cwc = open_compose_new_mail();
+ setupComposeWin(cwc, "test@example.invalid", "Testing disabled keyword reminder!",
+ "Some body...");
+
+ // This one should have the manual reminder disabled.
+ assert_manual_reminder_state(cwc, false);
+ // There should be no attachment notification.
+ assert_automatic_reminder_state(cwc, false);
+
+ // Add some keyword so the automatic notification
+ // could potentially show up.
+ setupComposeWin(cwc, "", "", " and look for your attachment!");
+ // Give the notification time to appear. It shouldn't.
+ wait_for_reminder_state(cwc, false);
+
+ // Enable the manual reminder.
+ click_manual_reminder(cwc, true);
+ assert_automatic_reminder_state(cwc, false);
+
+ // Disable the manual reminder and the notification should still be hidden
+ // even when there are still keywords in the body.
+ click_manual_reminder(cwc, false);
+ assert_automatic_reminder_state(cwc, false);
+
+ // There should be no attachment message upon send.
+ click_send_and_handle_send_error(cwc);
+
+ close_compose_window(cwc);
+
+ Services.prefs.setBoolPref(kReminderPref, true);
+}
+
+/**
+ * Bug 1099866
+ * Check if reminder does not stay open on compose window reopen
+ * due to window recycling.
+ */
+function test_recycling_attachment_reminder() {
+ let recycledWindows = Services.prefs.getIntPref("mail.compose.max_recycled_windows");
+ assert_true(recycledWindows > 0);
+ // Open a sample message with no attachment keywords.
+ let cwc = open_compose_new_mail();
+ setupComposeWin(cwc, "test@example.invalid", "Testing recycling a reminder!",
+ "Some body...");
+
+ // There should be no attachment notification.
+ assert_automatic_reminder_state(cwc, false);
+
+ // Add some keyword so the automatic notification
+ // could potentially show up.
+ setupComposeWin(cwc, "", "", " and look for your attachment!");
+ // Give the notification time to appear. It should.
+ wait_for_reminder_state(cwc, true);
+
+ close_compose_window(cwc, true);
+
+ // Another compose window without any keywords.
+ cwc = open_compose_new_mail();
+ setupComposeWin(cwc, "test@example.invalid", "Testing reminder after recycling!",
+ "Some body...");
+
+ // There should be no attachment notification.
+ assert_automatic_reminder_state(cwc, false);
+
+ close_compose_window(cwc);
+}
+
+
+/**
* Click the send button and handle the send error dialog popping up.
* It will return us back to the compose window.
*
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/test/mozmill/folder-display/test-columns.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/test/mozmill/folder-display/test-columns.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/test/mozmill/folder-display/test-columns.js 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/test/mozmill/folder-display/test-columns.js 2014-11-26 21:44:58.000000000 +0000
@@ -29,6 +29,8 @@
// these are for the reset/apply to other/apply to other+child tests.
var folderSource, folderParent, folderChild1, folderChild2;
+var gColumnStateUpdated = false;
+
function setupModule(module) {
let fdh = collector.getModule('folder-display-helpers');
fdh.installInto(module);
@@ -465,6 +467,20 @@
this.items = [];
}
+function plan_for_columns_state_update() {
+ gColumnStateUpdated = false;
+}
+
+function wait_for_columns_state_updated() {
+ const STATE_PREF = "mailnews.database.global.views.global";
+ let columns_state_updated = function() {
+ gColumnStateUpdated = true;
+ }
+ Services.prefs.addObserver(STATE_PREF, columns_state_updated, false);
+ mc.waitFor(() => gColumnStateUpdated, "Timeout waiting for columns state updated.");
+ Services.prefs.removeObserver(STATE_PREF, columns_state_updated);
+}
+
function test_column_defaults_gloda_collection() {
let fakeCollection = new FakeCollection();
mc.tabmail.openTab("glodaList", { collection: fakeCollection });
@@ -476,8 +492,14 @@
let fakeCollection = new FakeCollection();
mc.tabmail.openTab("glodaList", { collection: fakeCollection });
wait_for_all_messages_to_load();
+
+ plan_for_columns_state_update();
hide_column("locationCol");
+ wait_for_columns_state_updated();
+
+ plan_for_columns_state_update();
show_column("accountCol");
+ wait_for_columns_state_updated();
glodaColumns = GLODA_DEFAULTS.slice(0, -1);
glodaColumns.push("accountCol");
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/test/mozmill/folder-widget/test-message-filters.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/test/mozmill/folder-widget/test-message-filters.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/test/mozmill/folder-widget/test-message-filters.js 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/test/mozmill/folder-widget/test-message-filters.js 2014-11-26 21:44:58.000000000 +0000
@@ -88,12 +88,12 @@
function test_customize_toolbar_doesnt_double_get_mail_menu()
{
be_in_folder(folderA);
- wait_for_window_focused(mc.window);
/**
* Get the getAllNewMessages menu and check the number of items.
*/
function check_getAllNewMsgMenu() {
+ wait_for_window_focused(mc.window);
mc.click(mc.eid("menu_File"), 5, 5);
wait_for_popup_to_open(mc.e("menu_FilePopup"));
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/test/mozmill/shared-modules/test-address-book-helpers.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/test/mozmill/shared-modules/test-address-book-helpers.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/test/mozmill/shared-modules/test-address-book-helpers.js 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/test/mozmill/shared-modules/test-address-book-helpers.js 2014-11-26 21:44:58.000000000 +0000
@@ -8,7 +8,7 @@
const MODULE_REQUIRES = ["folder-display-helpers", "window-helpers"];
Cu.import("resource:///modules/mailServices.js");
-Cu.import("resource:///modules/Services.jsm");
+Cu.import("resource://gre/modules/Services.jsm");
const ABMDB_PREFIX = "moz-abmdbdirectory://";
const ABLDAP_PREFIX = "moz-abldapdirectory://";
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/themes/osx/mail/addrbook/addressbook.css thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/themes/osx/mail/addrbook/addressbook.css
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/themes/osx/mail/addrbook/addressbook.css 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/themes/osx/mail/addrbook/addressbook.css 2014-11-26 21:44:59.000000000 +0000
@@ -418,6 +418,23 @@
color: #FFFFFF;
}
+@media (-moz-mac-yosemite-theme) {
+ #folderTree treechildren::-moz-tree-cell-text {
+ font-family: 'Helvetica Neue';
+ }
+
+ #dirTree treechildren::-moz-tree-cell-text(selected, focus),
+ #dirTree treechildren::-moz-tree-cell-text(selected) {
+ color: black;
+ }
+
+ #dirTree treechildren::-moz-tree-row(selected),
+ #dirTree:-moz-system-metric(mac-graphite-theme) treechildren::-moz-tree-row(selected),
+ #dirTree treechildren:-moz-window-inactive::-moz-tree-row(selected) {
+ background: rgba(0, 0, 0, .1);
+ }
+}
+
treechildren::-moz-tree-image(DirCol) {
-moz-margin-end: 2px;
list-style-image: url("chrome://messenger/skin/addressbook/icons/addrbook.png");
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/themes/osx/mail/chat.css thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/themes/osx/mail/chat.css
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/themes/osx/mail/chat.css 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/themes/osx/mail/chat.css 2014-11-26 21:44:59.000000000 +0000
@@ -265,6 +265,24 @@
#9ca9c6 95%, #939fba 100%);
}
+@media (-moz-mac-yosemite-theme) {
+ :-moz-any(imconv, imcontact, imgroup) treechildren::-moz-tree-cell-text {
+ font-family: 'Helvetica Neue';
+ }
+
+ :-moz-any(imconv, imcontact, imgroup) treechildren::-moz-tree-cell-text(selected, focus),
+ :-moz-any(imconv, imcontact, imgroup) treechildren::-moz-tree-cell-text(selected),
+ :-moz-any(imconv, imcontact, imgroup)[selected] {
+ color: black;
+ }
+
+ :-moz-any(imconv, imcontact, imgroup)[selected],
+ :-moz-any(imconv, imcontact, imgroup)[selected]:-moz-system-metric(mac-graphite-theme),
+ :-moz-any(imconv, imcontact, imgroup)[selected]:-moz-window-inactive {
+ background: rgba(0, 0, 0, .1);
+ }
+}
+
#displayNameAndstatusMessageStack #statusMessage {
margin: 32px 0 0;
min-height: 16px;
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/themes/osx/mail/mailWindow1.css thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/themes/osx/mail/mailWindow1.css
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/themes/osx/mail/mailWindow1.css 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/themes/osx/mail/mailWindow1.css 2014-11-26 21:44:59.000000000 +0000
@@ -22,6 +22,17 @@
margin-bottom: 5px;
}
+/* Instead of box-shadow, we use actual borders on Yosemite,
+ * so we need to reduce the margin by 2px to make the height 42px.
+ */
+@media (-moz-mac-yosemite-theme) {
+ .mail-toolbox:not([mode="full"]) > toolbar:only-of-type,
+ .mail-toolbox[mode="full"][labelalign="end"] > toolbar:only-of-type {
+ margin-top: 5px;
+ margin-bottom: 4px;
+ }
+}
+
/* ::::::::: Global override :::::::::: */
treechildren::-moz-tree-twisty {
@@ -64,7 +75,6 @@
border: 0;
}
-
#folderTree treechildren::-moz-tree-indentation {
background-color: black !important;
}
@@ -95,6 +105,23 @@
color: HighlightText;
}
+@media (-moz-mac-yosemite-theme) {
+ #folderTree treechildren::-moz-tree-cell-text {
+ font-family: 'Helvetica Neue';
+ }
+
+ #folderTree treechildren::-moz-tree-cell-text(selected, focus),
+ #folderTree treechildren::-moz-tree-cell-text(selected) {
+ color: black;
+ }
+
+ #folderTree treechildren::-moz-tree-row(selected),
+ #folderTree:-moz-system-metric(mac-graphite-theme) treechildren::-moz-tree-row(selected),
+ #folderTree treechildren:-moz-window-inactive::-moz-tree-row(selected) {
+ background: rgba(0, 0, 0, .1);
+ }
+}
+
treecol,
treecolpicker {
border: none;
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/themes/osx/mail/messenger.css thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/themes/osx/mail/messenger.css
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/themes/osx/mail/messenger.css 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/themes/osx/mail/messenger.css 2014-11-26 21:44:59.000000000 +0000
@@ -15,6 +15,18 @@
height: 22px;
}
+@media (-moz-mac-yosemite-theme) {
+ #titlebar {
+ -moz-appearance: -moz-mac-vibrancy-light !important;
+ }
+
+ #tabmail {
+ box-shadow: 0px 1px 0px rgba(255, 255, 255, 0.4) inset !important;
+ border-top: solid 1px rgba(0, 0, 0, 0.2);
+ border-bottom: solid 1px rgba(0, 0, 0, 0.2);
+ }
+}
+
#messengerWindow[tabsintitlebar="true"] #titlebar-content {
margin-bottom: 9px;
}
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/themes/osx/mail/tabmail.css thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/themes/osx/mail/tabmail.css
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mail/themes/osx/mail/tabmail.css 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mail/themes/osx/mail/tabmail.css 2014-11-26 21:45:00.000000000 +0000
@@ -13,6 +13,16 @@
transparent 1px);
}
+@media (-moz-mac-yosemite-theme) {
+ #tabs-toolbar {
+ margin-bottom: -1px;
+ }
+
+ #messengerWindow[tabsintitlebar="true"] #tabs-toolbar {
+ -moz-appearance: -moz-mac-vibrancy-light !important;
+ }
+}
+
.tabmail-arrowscrollbox {
margin-bottom: -1px;
}
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/addrbook/content/abMailListDialog.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/addrbook/content/abMailListDialog.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/addrbook/content/abMailListDialog.js 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/addrbook/content/abMailListDialog.js 2014-11-26 21:44:57.000000000 +0000
@@ -236,7 +236,7 @@
NotifySaveListeners(gEditList);
gEditList.editMailListToDatabase(gListCard);
- window.arguments[0].outParam.ok = true;
+ window.arguments[0].refresh = true;
return true; // close the window
}
@@ -247,9 +247,8 @@
{
InitCommonJS();
- gListCard = window.arguments[0].inParam.abCard;
- var listUri = window.arguments[0].inParam.listUri;
- window.arguments[0].outParam.ok = false;
+ gListCard = window.arguments[0].abCard;
+ var listUri = window.arguments[0].listURI;
gEditList = GetDirectoryFromURI(listUri);
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/addrbook/src/nsAbAutoCompleteSearch.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/addrbook/src/nsAbAutoCompleteSearch.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/addrbook/src/nsAbAutoCompleteSearch.js 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/addrbook/src/nsAbAutoCompleteSearch.js 2014-11-26 21:44:57.000000000 +0000
@@ -334,8 +334,9 @@
}
// Array of all the terms from the fullString search query
- // (separated on the basis of spaces).
- let searchWords = fullString.split(/\s+/);
+ // (separated on the basis of spaces or exact terms on the
+ // basis of quotes).
+ let searchWords = getSearchTokens(fullString);
// Find out about the comment column
try {
@@ -371,14 +372,14 @@
// for each word separately so that each result contains all the words
// from the fullstring in the fields of the addressbook card
// (see bug 558931 for explanations).
- let searchQuery = "";
let modelQuery = "(or(DisplayName,c,@V)(FirstName,c,@V)(LastName,c,@V)" +
"(NickName,c,@V)(PrimaryEmail,c,@V)(SecondEmail,c,@V)" +
"(and(IsMailList,=,TRUE)(Notes,c,@V)))";
- for (let searchWord of searchWords) {
- searchQuery += modelQuery.replace(/@V/g, encodeABTermValue(searchWord));
- }
- searchQuery = "?(and" + searchQuery + ")";
+ // Use helper method to split up search query to multi-word search
+ // query against multiple fields.
+ let searchWords = getSearchTokens(fullString);
+ let searchQuery = generateQueryURI(modelQuery, searchWords);
+
// Now do the searching
let allABs = this._abManager.directories;
@@ -434,6 +435,75 @@
return encodeURIComponent(aString).replace(/\(/g, "%28").replace(/\)/g, "%29");
}
+/**
+ * This is an exact replica of the method in abCommon.js and needs to
+ * be merged to remove this duplication.
+ *
+ * Parse the multiword search string to extract individual search terms
+ * (separated on the basis of spaces) or quoted exact phrases to search
+ * against multiple fields of the addressbook cards.
+ *
+ * @param aSearchString The full search string entered by the user.
+ *
+ * @return an array of separated search terms from the full search string.
+ */
+function getSearchTokens(aSearchString)
+{
+ let searchString = aSearchString.trim();
+
+ if (searchString == "")
+ return [];
+
+ let quotedTerms = [];
+
+ // Split up multiple search words to create a *foo* and *bar* search against
+ // search fields, using the OR-search template from modelQuery for each word.
+ // If the search query has quoted terms as "foo bar", extract them as is.
+ let startIndex;
+ while ((startIndex = searchString.indexOf('"')) != -1) {
+ let endIndex = searchString.indexOf('"', startIndex + 1);
+ if (endIndex == -1)
+ endIndex = searchString.length;
+
+ quotedTerms.push(searchString.substring(startIndex + 1, endIndex));
+ let query = searchString.substring(0, startIndex);
+ if (endIndex < searchString.length)
+ query += searchString.substr(endIndex + 1);
+
+ searchString = query.trim();
+ }
+
+ let searchWords = [];
+ if (searchString.length != 0) {
+ searchWords = quotedTerms.concat(searchString.split(/\s+/));
+ } else {
+ searchWords = quotedTerms;
+ }
+
+ return searchWords;
+}
+
+/*
+ * Given a database model query and a list of search tokens,
+ * return query URI.
+ *
+ * @param aModelQuery database model query
+ * @param aSearchWords an array of search tokens.
+ *
+ * @return query URI.
+ */
+function generateQueryURI(aModelQuery, aSearchWords)
+{
+ let queryURI = "";
+ aSearchWords.forEach(searchWord =>
+ queryURI += aModelQuery.replace(/@V/g, encodeABTermValue(searchWord)));
+
+ // queryURI has all the (or(...)) searches, link them up with (and(...)).
+ queryURI = "?(and" + queryURI + ")";
+
+ return queryURI;
+}
+
// Module
var components = [nsAbAutoCompleteSearch];
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/addrbook/test/unit/test_nsAbAutoCompleteSearch6.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/addrbook/test/unit/test_nsAbAutoCompleteSearch6.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/addrbook/test/unit/test_nsAbAutoCompleteSearch6.js 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/addrbook/test/unit/test_nsAbAutoCompleteSearch6.js 2014-11-26 21:44:57.000000000 +0000
@@ -59,6 +59,24 @@
{ // 10
email: "10@example.com", displayName: "däsh l18n",
popularityIndex: 0, value: "däsh l18n <10@example.com>"
+ },
+
+ { // 11
+ email: "11@example.com", displayName: "paul mary",
+ popularityIndex: 0, firstName: "paul", lastName: "mary meyer",
+ value: "paul mary <11@example.com>"
+ },
+
+ { // 12
+ email: "12@example.com", displayName: "paul meyer",
+ popularityIndex: 0, firstName: "paul", lastName: "mary meyer",
+ value: "paul meyer <12@example.com>"
+ },
+
+ { // 13
+ email: "13@example.com", displayName: "mr iron man (exp dev)",
+ popularityIndex: 0, firstName: "iron", lastName: "man",
+ value: "mr iron man (exp dev) <13@example.com>"
}
];
@@ -70,7 +88,10 @@
{ search: "xx", expected: [0, 5] },
{ search: "jan", expected: [1, 3] },
{ search: "sh", expected: [2, 10, 7] },
- { search: "st", expected: [3,8] }
+ { search: "st", expected: [3,8] },
+ { search: "paul mary", expected: [11, 12] },
+ { search: "\"paul mary\"", expected: [11] },
+ { search: "\"iron man\" mr \"exp dev\"", expected: [13] }
];
function acObserver() {}
@@ -103,6 +124,7 @@
card.displayName = element.displayName;
card.setProperty("PopularityIndex", element.popularityIndex);
card.firstName = element.firstName;
+ card.lastName = element.lastName;
ab.addCard(card);
}
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/public/MailNewsTypes.h thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/public/MailNewsTypes.h
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/public/MailNewsTypes.h 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/public/MailNewsTypes.h 2014-11-26 21:44:57.000000000 +0000
@@ -30,4 +30,10 @@
const nsMsgViewIndex nsMsgViewIndex_None = 0xFFFFFFFF;
+/* kSizeUnknown is a special value of folder size that indicates the size
+ * is unknown yet. Usually this causes the folder to determine the real size
+ * immediately as it is queried by a consumer.
+ */
+const int64_t kSizeUnknown = -1;
+
#endif
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/public/nsIFolderListener.idl thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/public/nsIFolderListener.idl
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/public/nsIFolderListener.idl 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/public/nsIFolderListener.idl 2014-11-26 21:44:57.000000000 +0000
@@ -11,7 +11,7 @@
typedef unsigned long folderListenerNotifyFlagValue;
-[scriptable, uuid(f60ee1a2-6d81-422c-958f-d408b1b2daa6)]
+[scriptable, uuid(f60ee1a2-6d81-422c-958f-d408b1b2daa7)]
interface nsIFolderListener : nsISupports {
const folderListenerNotifyFlagValue added = 0x1;
void OnItemAdded(in nsIMsgFolder aParentItem,
@@ -28,10 +28,12 @@
in string aNewValue);
const folderListenerNotifyFlagValue intPropertyChanged = 0x8;
+ // While this property handles long long (64bit wide) values,
+ // the Javascript engine will only pass values up to 2^53 to the consumers.
void OnItemIntPropertyChanged(in nsIMsgFolder aItem,
in nsIAtom aProperty,
- in long aOldValue,
- in long aNewValue);
+ in long long aOldValue,
+ in long long aNewValue);
const folderListenerNotifyFlagValue boolPropertyChanged = 0x10;
void OnItemBoolPropertyChanged(in nsIMsgFolder aItem,
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/public/nsIMsgFolderCacheElement.idl thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/public/nsIMsgFolderCacheElement.idl
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/public/nsIMsgFolderCacheElement.idl 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/public/nsIMsgFolderCacheElement.idl 2014-11-26 21:44:57.000000000 +0000
@@ -6,12 +6,14 @@
#include "nsISupports.idl"
-[scriptable, uuid(D7ED2508-A608-46cd-AA01-FBB019B0FA44)]
-interface nsIMsgFolderCacheElement : nsISupports
+[scriptable, uuid(c7392b12-f68a-46b2-af5e-d47350bb17c3)]
+interface nsIMsgFolderCacheElement : nsISupports
{
attribute ACString key;
ACString getStringProperty(in string propertyName);
long getInt32Property(in string propertyName);
+ long long getInt64Property(in string propertyName);
void setStringProperty(in string propertyName, in ACString propertyValue);
void setInt32Property(in string propertyName, in long propertyValue);
+ void setInt64Property(in string propertyName, in long long propertyValue);
};
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/public/nsIMsgFolder.idl thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/public/nsIMsgFolder.idl
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/public/nsIMsgFolder.idl 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/public/nsIMsgFolder.idl 2014-11-26 21:44:57.000000000 +0000
@@ -29,7 +29,8 @@
// enumerated type for determining if a message has been replied to, forwarded, etc.
typedef long nsMsgDispositionState;
-[scriptable, uuid(25cbee16-95bc-11e3-9320-00269e4fddc1)]
+
+[scriptable, uuid(9ce446f3-398c-4462-a4c6-0ce562d5bd30)]
interface nsIMsgFolder : nsISupports {
const nsMsgBiffState nsMsgBiffState_NewMail = 0; // User has new mail waiting.
@@ -293,7 +294,7 @@
* size of this folder on disk (not including .msf file)
* for imap, it's the sum of the size of the messages
*/
- attribute unsigned long sizeOnDisk;
+ attribute long long sizeOnDisk;
readonly attribute ACString username;
readonly attribute ACString hostname;
@@ -655,8 +656,8 @@
in ACString oldValue,
in ACString newValue);
void NotifyIntPropertyChanged(in nsIAtom property,
- in long oldValue,
- in long newValue);
+ in long long oldValue,
+ in long long newValue);
void NotifyBoolPropertyChanged(in nsIAtom property,
in boolean oldValue,
in boolean newValue);
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/public/nsMsgFolderFlags.idl thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/public/nsMsgFolderFlags.idl
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/public/nsMsgFolderFlags.idl 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/public/nsMsgFolderFlags.idl 2014-11-26 21:44:57.000000000 +0000
@@ -3,6 +3,11 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+// This must be limited to unsigned long (uint32_t, no uint64_t)
+// as long as nsIMsgFolder exposes the 'flags' property which contains
+// all the flags values. The callers are used to do
+// (folder.flags & nsMsgFolderFlags.) in Javascript
+// which cuts the value to 32bit only. See bug 813459.
typedef unsigned long nsMsgFolderFlagType;
/// Flags about a folder or a newsgroup.
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMessenger.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMessenger.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMessenger.cpp 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMessenger.cpp 2014-11-26 21:44:57.000000000 +0000
@@ -2193,8 +2193,8 @@
return NS_ERROR_NOT_IMPLEMENTED;
}
-/* void OnItemIntPropertyChanged (in nsIMsgFolder item, in nsIAtom property, in long oldValue, in long newValue); */
-NS_IMETHODIMP nsMessenger::OnItemIntPropertyChanged(nsIMsgFolder *item, nsIAtom *property, int32_t oldValue, int32_t newValue)
+/* void OnItemIntPropertyChanged (in nsIMsgFolder item, in nsIAtom property, in long long oldValue, in long long newValue); */
+NS_IMETHODIMP nsMessenger::OnItemIntPropertyChanged(nsIMsgFolder *item, nsIAtom *property, int64_t oldValue, int64_t newValue)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMessengerOSXIntegration.mm thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMessengerOSXIntegration.mm
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMessengerOSXIntegration.mm 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMessengerOSXIntegration.mm 2014-11-26 21:44:57.000000000 +0000
@@ -417,8 +417,8 @@
NS_IMETHODIMP
nsMessengerOSXIntegration::OnItemIntPropertyChanged(nsIMsgFolder *aFolder,
nsIAtom *aProperty,
- int32_t aOldValue,
- int32_t aNewValue)
+ int64_t aOldValue,
+ int64_t aNewValue)
{
// if we got new mail show an alert
if (aNewValue == nsIMsgFolder::nsMsgBiffState_NewMail)
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMessengerUnixIntegration.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMessengerUnixIntegration.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMessengerUnixIntegration.cpp 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMessengerUnixIntegration.cpp 2014-11-26 21:44:57.000000000 +0000
@@ -655,7 +655,7 @@
}
NS_IMETHODIMP
-nsMessengerUnixIntegration::OnItemIntPropertyChanged(nsIMsgFolder *aItem, nsIAtom *aProperty, int32_t aOldValue, int32_t aNewValue)
+nsMessengerUnixIntegration::OnItemIntPropertyChanged(nsIMsgFolder *aItem, nsIAtom *aProperty, int64_t aOldValue, int64_t aNewValue)
{
nsCString atomName;
// if we got new mail show an icon in the system tray
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMessengerWinIntegration.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMessengerWinIntegration.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMessengerWinIntegration.cpp 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMessengerWinIntegration.cpp 2014-11-26 21:44:57.000000000 +0000
@@ -894,7 +894,7 @@
}
NS_IMETHODIMP
-nsMessengerWinIntegration::OnItemIntPropertyChanged(nsIMsgFolder *aItem, nsIAtom *aProperty, int32_t aOldValue, int32_t aNewValue)
+nsMessengerWinIntegration::OnItemIntPropertyChanged(nsIMsgFolder *aItem, nsIAtom *aProperty, int64_t aOldValue, int64_t aNewValue)
{
// if we got new mail show a icon in the system tray
if (mBiffStateAtom == aProperty && mFoldersWithNewMail)
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMsgAccountManager.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMsgAccountManager.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMsgAccountManager.cpp 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMsgAccountManager.cpp 2014-11-26 21:44:57.000000000 +0000
@@ -3562,8 +3562,8 @@
NS_IMETHODIMP
nsMsgAccountManager::OnItemIntPropertyChanged(nsIMsgFolder *aFolder,
nsIAtom *aProperty,
- int32_t oldValue,
- int32_t newValue)
+ int64_t oldValue,
+ int64_t newValue)
{
if (aProperty == mFolderFlagAtom)
{
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMsgAccountManagerDS.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMsgAccountManagerDS.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMsgAccountManagerDS.cpp 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMsgAccountManagerDS.cpp 2014-11-26 21:44:58.000000000 +0000
@@ -1169,7 +1169,7 @@
}
nsresult
-nsMsgAccountManagerDataSource::OnItemIntPropertyChanged(nsIMsgFolder *, nsIAtom *, int32_t, int32_t)
+nsMsgAccountManagerDataSource::OnItemIntPropertyChanged(nsIMsgFolder *, nsIAtom *, int64_t, int64_t)
{
return NS_OK;
}
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMsgFolderCacheElement.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMsgFolderCacheElement.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMsgFolderCacheElement.cpp 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMsgFolderCacheElement.cpp 2014-11-26 21:44:58.000000000 +0000
@@ -79,6 +79,29 @@
return NS_OK;
}
+NS_IMETHODIMP nsMsgFolderCacheElement::GetInt64Property(const char *propertyName, int64_t *aResult)
+{
+ NS_ENSURE_ARG_POINTER(propertyName);
+ NS_ENSURE_ARG_POINTER(aResult);
+ NS_ENSURE_TRUE(m_mdbRow, NS_ERROR_FAILURE);
+
+ nsCString resultStr;
+ GetStringProperty(propertyName, resultStr);
+ if (resultStr.IsEmpty())
+ return NS_ERROR_FAILURE;
+
+ // This must be an inverse function to nsCString.AppentInt(),
+ // which uses snprintf("%x") internally, so that the wrapped negative numbers
+ // are decoded properly.
+ if (PR_sscanf(resultStr.get(), "%llx", aResult) != 1)
+ {
+ NS_WARNING("Unexpected failure to decode hex string.");
+ return NS_ERROR_FAILURE;
+ }
+
+ return NS_OK;
+}
+
NS_IMETHODIMP nsMsgFolderCacheElement::SetStringProperty(const char *propertyName, const nsACString& propertyValue)
{
NS_ENSURE_ARG_POINTER(propertyName);
@@ -119,6 +142,18 @@
nsAutoCString propertyStr;
propertyStr.AppendInt(propertyValue, 16);
return SetStringProperty(propertyName, propertyStr);
+}
+
+NS_IMETHODIMP nsMsgFolderCacheElement::SetInt64Property(const char *propertyName, int64_t propertyValue)
+{
+ NS_ENSURE_ARG_POINTER(propertyName);
+ NS_ENSURE_TRUE(m_mdbRow, NS_ERROR_FAILURE);
+
+ // This also supports encoding negative numbers into hex
+ // by integer wrapping them (e.g. -1 -> "ffffffffffffffff").
+ nsAutoCString propertyStr;
+ propertyStr.AppendInt(propertyValue, 16);
+ return SetStringProperty(propertyName, propertyStr);
}
void nsMsgFolderCacheElement::SetMDBRow(nsIMdbRow *row)
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMsgFolderDataSource.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMsgFolderDataSource.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMsgFolderDataSource.cpp 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMsgFolderDataSource.cpp 2014-11-26 21:44:58.000000000 +0000
@@ -118,6 +118,8 @@
static const uint32_t kDisplayBlankCount = 0xFFFFFFFE;
static const uint32_t kDisplayQuestionCount = 0xFFFFFFFF;
+static const int64_t kDisplayBlankCount64 = -2;
+static const int64_t kDisplayQuestionCount64 = -1;
nsMsgFolderDataSource::nsMsgFolderDataSource()
{
@@ -806,8 +808,8 @@
NS_IMETHODIMP
nsMsgFolderDataSource::OnItemIntPropertyChanged(nsIMsgFolder *folder,
nsIAtom *property,
- int32_t oldValue,
- int32_t newValue)
+ int64_t oldValue,
+ int64_t newValue)
{
nsCOMPtr resource(do_QueryInterface(folder));
if (kTotalMessagesAtom == property)
@@ -1454,19 +1456,19 @@
nsresult rv = folder->GetIsServer(&isServer);
NS_ENSURE_SUCCESS(rv, rv);
- int32_t folderSize;
- if(isServer)
- folderSize = kDisplayBlankCount;
+ int64_t folderSize;
+ if (isServer) {
+ folderSize = kDisplayBlankCount64;
+ }
else
{
// XXX todo, we are asserting here for news
- // for offline news, we'd know the size on disk, right?
- rv = folder->GetSizeOnDisk((uint32_t *) &folderSize);
+ // for offline news, we'd know the size on disk, right? Yes, bug 851275.
+ rv = folder->GetSizeOnDisk(&folderSize);
NS_ENSURE_SUCCESS(rv, rv);
}
- GetFolderSizeNode(folderSize, target);
- return rv;
+ return GetFolderSizeNode(folderSize, target);
}
nsresult
@@ -1758,7 +1760,7 @@
}
nsresult
-nsMsgFolderDataSource::OnFolderSizePropertyChanged(nsIRDFResource *folderResource, int32_t oldValue, int32_t newValue)
+nsMsgFolderDataSource::OnFolderSizePropertyChanged(nsIRDFResource *folderResource, int64_t oldValue, int64_t newValue)
{
nsCOMPtr newNode;
GetFolderSizeNode(newValue, getter_AddRefs(newNode));
@@ -1789,18 +1791,17 @@
}
nsresult
-nsMsgFolderDataSource::GetFolderSizeNode(int32_t aFolderSize, nsIRDFNode **aNode)
+nsMsgFolderDataSource::GetFolderSizeNode(int64_t aFolderSize, nsIRDFNode **aNode)
{
nsresult rv;
- uint32_t folderSize = aFolderSize;
- if (folderSize == kDisplayBlankCount || folderSize == 0)
+ if (aFolderSize == kDisplayBlankCount64)
createNode(EmptyString().get(), aNode, getRDFService());
- else if(folderSize == kDisplayQuestionCount)
+ else if (aFolderSize == kDisplayQuestionCount64)
createNode(MOZ_UTF16("???"), aNode, getRDFService());
else
{
nsAutoString sizeString;
- rv = FormatFileSize(folderSize, true, sizeString);
+ rv = FormatFileSize(aFolderSize, true, sizeString);
NS_ENSURE_SUCCESS(rv, rv);
createNode(sizeString.get(), aNode, getRDFService());
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMsgFolderDataSource.h thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMsgFolderDataSource.h
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMsgFolderDataSource.h 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMsgFolderDataSource.h 2014-11-26 21:44:58.000000000 +0000
@@ -176,14 +176,14 @@
nsresult OnUnreadMessagePropertyChanged(nsIRDFResource *folderResource, int32_t oldValue, int32_t newValue);
nsresult OnTotalMessagePropertyChanged(nsIRDFResource *folderResource, int32_t oldValue, int32_t newValue);
- nsresult OnFolderSizePropertyChanged(nsIRDFResource *folderResource, int32_t oldValue, int32_t newValue);
+ nsresult OnFolderSizePropertyChanged(nsIRDFResource *folderResource, int64_t oldValue, int64_t newValue);
nsresult OnFolderSortOrderPropertyChanged(nsIRDFResource *folderResource, int32_t oldValue, int32_t newValue);
nsresult NotifyFolderTreeNameChanged(nsIMsgFolder *folder, nsIRDFResource *folderResource, int32_t aUnreadMessages);
nsresult NotifyFolderTreeSimpleNameChanged(nsIMsgFolder *folder, nsIRDFResource *folderResource);
nsresult NotifyFolderNameChanged(nsIMsgFolder *folder, nsIRDFResource *folderResource);
nsresult NotifyAncestors(nsIMsgFolder *aFolder, nsIRDFResource *aPropertyResource, nsIRDFNode *aNode);
nsresult GetNumMessagesNode(int32_t numMessages, nsIRDFNode **node);
- nsresult GetFolderSizeNode(int32_t folderSize, nsIRDFNode **node);
+ nsresult GetFolderSizeNode(int64_t folderSize, nsIRDFNode **node);
nsresult CreateLiterals(nsIRDFService *rdf);
virtual nsresult GetFolderDisplayName(nsIMsgFolder *folder, nsString& folderName);
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMsgMailSession.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMsgMailSession.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsMsgMailSession.cpp 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsMsgMailSession.cpp 2014-11-26 21:44:58.000000000 +0000
@@ -118,8 +118,8 @@
NS_IMETHODIMP
nsMsgMailSession::OnItemIntPropertyChanged(nsIMsgFolder *aItem,
nsIAtom *aProperty,
- int32_t aOldValue,
- int32_t aNewValue)
+ int64_t aOldValue,
+ int64_t aNewValue)
{
NOTIFY_FOLDER_LISTENERS(intPropertyChanged, OnItemIntPropertyChanged,
(aItem, aProperty, aOldValue, aNewValue));
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsStatusBarBiffManager.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsStatusBarBiffManager.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/src/nsStatusBarBiffManager.cpp 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/src/nsStatusBarBiffManager.cpp 2014-11-26 21:44:58.000000000 +0000
@@ -182,7 +182,7 @@
}
NS_IMETHODIMP
-nsStatusBarBiffManager::OnItemIntPropertyChanged(nsIMsgFolder *item, nsIAtom *property, int32_t oldValue, int32_t newValue)
+nsStatusBarBiffManager::OnItemIntPropertyChanged(nsIMsgFolder *item, nsIAtom *property, int64_t oldValue, int64_t newValue)
{
if (kBiffStateAtom == property && mCurrentBiffState != newValue) {
// if we got new mail, attempt to play a sound.
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/test/unit/test_autoconfigXML.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/test/unit/test_autoconfigXML.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/test/unit/test_autoconfigXML.js 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/test/unit/test_autoconfigXML.js 2014-11-26 21:44:58.000000000 +0000
@@ -17,7 +17,7 @@
// Globals
Components.utils.import("resource://gre/modules/Services.jsm");
-Components.utils.import("resource://gre/modules/JXON.js");
+Components.utils.import("resource:///modules/JXON.js");
var DOMParser = Components.Constructor("@mozilla.org/xmlextras/domparser;1");
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/util/nsMsgDBFolder.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/util/nsMsgDBFolder.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/util/nsMsgDBFolder.cpp 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/util/nsMsgDBFolder.cpp 2014-11-26 21:44:58.000000000 +0000
@@ -137,7 +137,7 @@
mSemaphoreHolder(nullptr),
mNumPendingUnreadMessages(0),
mNumPendingTotalMessages(0),
- mFolderSize(0),
+ mFolderSize(kSizeUnknown),
mNumNewBiffMessages(0),
mIsCachable(true),
mHaveParsedURI(false),
@@ -1302,7 +1302,7 @@
element->GetInt32Property("pendingUnreadMsgs", &mNumPendingUnreadMessages);
element->GetInt32Property("pendingMsgs", &mNumPendingTotalMessages);
element->GetInt32Property("expungedBytes", (int32_t *) &mExpungedBytes);
- element->GetInt32Property("folderSize", (int32_t *) &mFolderSize);
+ element->GetInt64Property("folderSize", &mFolderSize);
element->GetStringProperty("charset", mCharset);
#ifdef DEBUG_bienvenu1
@@ -1425,7 +1425,7 @@
element->SetInt32Property("pendingUnreadMsgs", mNumPendingUnreadMessages);
element->SetInt32Property("pendingMsgs", mNumPendingTotalMessages);
element->SetInt32Property("expungedBytes", mExpungedBytes);
- element->SetInt32Property("folderSize", mFolderSize);
+ element->SetInt64Property("folderSize", mFolderSize);
element->SetStringProperty("charset", mCharset);
#ifdef DEBUG_bienvenu1
@@ -4560,14 +4560,14 @@
return NS_OK;
}
-NS_IMETHODIMP nsMsgDBFolder::GetSizeOnDisk(uint32_t *size)
+NS_IMETHODIMP nsMsgDBFolder::GetSizeOnDisk(int64_t *size)
{
NS_ENSURE_ARG_POINTER(size);
- *size = 0;
+ *size = kSizeUnknown;
return NS_OK;
}
-NS_IMETHODIMP nsMsgDBFolder::SetSizeOnDisk(uint32_t aSizeOnDisk)
+NS_IMETHODIMP nsMsgDBFolder::SetSizeOnDisk(int64_t aSizeOnDisk)
{
NotifyIntPropertyChanged(kFolderSizeAtom, mFolderSize, aSizeOnDisk);
mFolderSize = aSizeOnDisk;
@@ -4946,8 +4946,8 @@
}
NS_IMETHODIMP
-nsMsgDBFolder::NotifyIntPropertyChanged(nsIAtom *aProperty, int32_t aOldValue,
- int32_t aNewValue)
+nsMsgDBFolder::NotifyIntPropertyChanged(nsIAtom *aProperty, int64_t aOldValue,
+ int64_t aNewValue)
{
// Don't send off count notifications if they are turned off.
if (!mNotifyCountChanges &&
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/util/nsMsgDBFolder.h thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/util/nsMsgDBFolder.h
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/util/nsMsgDBFolder.h 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/util/nsMsgDBFolder.h 2014-11-26 21:44:58.000000000 +0000
@@ -206,7 +206,7 @@
// we don't want to do an expensive select until the user actually opens that folder
int32_t mNumPendingUnreadMessages;
int32_t mNumPendingTotalMessages;
- uint32_t mFolderSize;
+ int64_t mFolderSize;
int32_t mNumNewBiffMessages;
bool mIsCachable;
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/util/nsMsgUtils.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/util/nsMsgUtils.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/util/nsMsgUtils.cpp 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/util/nsMsgUtils.cpp 2014-11-26 21:44:58.000000000 +0000
@@ -471,7 +471,7 @@
return NS_OK;
}
-nsresult FormatFileSize(uint64_t size, bool useKB, nsAString &formattedSize)
+nsresult FormatFileSize(int64_t size, bool useKB, nsAString &formattedSize)
{
NS_NAMED_LITERAL_STRING(byteAbbr, "byteAbbreviation2");
NS_NAMED_LITERAL_STRING(kbAbbr, "kiloByteAbbreviation2");
@@ -493,7 +493,7 @@
getter_AddRefs(bundle));
NS_ENSURE_SUCCESS(rv, rv);
- float unitSize = size;
+ float unitSize = size < 0 ? 0.0 : size;
uint32_t unitIndex = 0;
if (useKB) {
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/util/nsMsgUtils.h thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/util/nsMsgUtils.h
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/util/nsMsgUtils.h 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/util/nsMsgUtils.h 2014-11-26 21:44:58.000000000 +0000
@@ -62,7 +62,7 @@
NS_MSG_BASE nsresult NS_MsgHashIfNecessary(nsAutoString &name);
NS_MSG_BASE nsresult NS_MsgHashIfNecessary(nsAutoCString &name);
-NS_MSG_BASE nsresult FormatFileSize(uint64_t size, bool useKB, nsAString &formattedSize);
+NS_MSG_BASE nsresult FormatFileSize(int64_t size, bool useKB, nsAString &formattedSize);
/**
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/util/OAuth2.jsm thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/util/OAuth2.jsm
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/base/util/OAuth2.jsm 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/base/util/OAuth2.jsm 2014-11-26 21:44:58.000000000 +0000
@@ -10,8 +10,8 @@
const {classes: Cc, interfaces: Ci, results: Cr, utils: Cu} = Components;
Cu.import("resource://gre/modules/Http.jsm");
-Cu.import("resource:///modules/Services.jsm");
-Cu.import("resource:///modules/XPCOMUtils.jsm");
+Cu.import("resource://gre/modules/Services.jsm");
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
Cu.import("resource:///modules/gloda/log4moz.js");
function parseURLData(aData) {
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/compose/src/nsMsgSendLater.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/compose/src/nsMsgSendLater.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/compose/src/nsMsgSendLater.cpp 2014-11-14 09:36:39.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/compose/src/nsMsgSendLater.cpp 2014-11-26 21:44:58.000000000 +0000
@@ -1503,7 +1503,7 @@
NS_IMETHODIMP
nsMsgSendLater::OnItemIntPropertyChanged(nsIMsgFolder *aItem, nsIAtom *aProperty,
- int32_t aOldValue, int32_t aNewValue)
+ int64_t aOldValue, int64_t aNewValue)
{
return NS_OK;
}
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/imap/src/nsImapMailFolder.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/imap/src/nsImapMailFolder.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/imap/src/nsImapMailFolder.cpp 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/imap/src/nsImapMailFolder.cpp 2014-11-26 21:44:59.000000000 +0000
@@ -1763,7 +1763,7 @@
return NS_OK;
}
-NS_IMETHODIMP nsImapMailFolder::GetSizeOnDisk(uint32_t * size)
+NS_IMETHODIMP nsImapMailFolder::GetSizeOnDisk(int64_t *size)
{
NS_ENSURE_ARG_POINTER(size);
*size = mFolderSize;
@@ -4814,7 +4814,7 @@
// Take this opportunity to recalculate the folder size, if we're not a
// partial (condstore) fetch.
- uint64_t newFolderSize = 0;
+ int64_t newFolderSize = 0;
flagState->GetNumberOfMessages(&messageIndex);
@@ -4847,8 +4847,8 @@
}
if (!partialUIDFetch && newFolderSize != mFolderSize)
{
- uint32_t oldFolderSize = mFolderSize;
- mFolderSize = (uint32_t) newFolderSize;
+ int64_t oldFolderSize = mFolderSize;
+ mFolderSize = newFolderSize;
NotifyIntPropertyChanged(kFolderSizeAtom, oldFolderSize, mFolderSize);
}
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/imap/src/nsImapMailFolder.h thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/imap/src/nsImapMailFolder.h
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/imap/src/nsImapMailFolder.h 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/imap/src/nsImapMailFolder.h 2014-11-26 21:44:59.000000000 +0000
@@ -232,7 +232,7 @@
NS_IMETHOD GetDeletable (bool *deletable) MOZ_OVERRIDE;
- NS_IMETHOD GetSizeOnDisk(uint32_t * size) MOZ_OVERRIDE;
+ NS_IMETHOD GetSizeOnDisk(int64_t *size) MOZ_OVERRIDE;
NS_IMETHOD GetCanCreateSubfolders(bool *aResult) MOZ_OVERRIDE;
NS_IMETHOD GetCanSubscribe(bool *aResult) MOZ_OVERRIDE;
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/intl/charsetalias.properties thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/intl/charsetalias.properties
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/intl/charsetalias.properties 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/intl/charsetalias.properties 2014-11-26 21:44:59.000000000 +0000
@@ -1,105 +1,41 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This Original Code has been modified by IBM Corporation.
-# Modifications made by IBM described herein are
-# Copyright (c) International Business Machines
-# Corporation, 1999
-#
-# Modifications to Mozilla code or documentation
-# identified per MPL Section 3.3
-#
-# Date Modified by Description of modification
-# 12/09/1999 IBM Corp. Support for IBM codepages - 850,852,855,857,862,864
-#
+
# Rule of this file:
# 1. key should always be in lower case ascii so we can do case insensitive
# comparison in the code faster.
# 2. value should be the one used in unicode converter
-#
# 3. If the charset is not used for document charset, but font charset
# (e.g. XLFD charset- such as JIS x0201, JIS x0208), don't put here
#
+# This file contains mainly aliases. Actual labels for encodings are in
+# labelsencodings.properties. Besides aliases it contains labels for charsets
+# that are not part of the HTML5 world, but still are supported for e-mail.
ascii=us-ascii
us-ascii=us-ascii
ansi_x3.4-1968=us-ascii
646=us-ascii
iso-8859-1=ISO-8859-1
-iso-8859-2=ISO-8859-2
-iso-8859-3=ISO-8859-3
-iso-8859-4=ISO-8859-4
-iso-8859-5=ISO-8859-5
-iso-8859-6=ISO-8859-6
iso-8859-6-i=ISO-8859-6-I
iso-8859-6-e=ISO-8859-6-E
-iso-8859-7=ISO-8859-7
-iso-8859-8=ISO-8859-8
-iso-8859-8-i=ISO-8859-8-I
iso-8859-8-e=ISO-8859-8-E
-iso-8859-10=ISO-8859-10
-iso-8859-13=ISO-8859-13
-iso-8859-14=ISO-8859-14
-iso-8859-15=ISO-8859-15
-iso-8859-16=ISO-8859-16
-iso-ir-111=ISO-IR-111
-iso-2022-cn=ISO-2022-CN
-iso-2022-cn-ext=ISO-2022-CN
-iso-2022-kr=ISO-2022-KR
-iso-2022-jp=ISO-2022-JP
-utf-16be=UTF-16BE
-utf-16le=UTF-16LE
utf-16=UTF-16
-windows-1250=windows-1250
-windows-1251=windows-1251
-windows-1252=windows-1252
-windows-1253=windows-1253
-windows-1254=windows-1254
-windows-1255=windows-1255
-windows-1256=windows-1256
-windows-1257=windows-1257
-windows-1258=windows-1258
-ibm866=IBM866
-ibm850=IBM850
-ibm852=IBM852
-ibm855=IBM855
-ibm857=IBM857
-ibm862=IBM862
-ibm864=IBM864
-utf-8=UTF-8
utf-7=UTF-7
-shift_jis=Shift_JIS
-big5=Big5
-euc-jp=EUC-JP
-euc-kr=EUC-KR
gb2312=GB2312
-gb18030=gb18030
viscii=VISCII
-koi8-r=KOI8-R
-koi8_r=KOI8-R
-cskoi8r=KOI8-R
-koi=KOI8-R
-koi8=KOI8-R
-koi8-u=KOI8-U
t.61-8bit=T.61-8bit
hz-gb-2312=HZ-GB-2312
-big5-hkscs=Big5-HKSCS
-gbk=gbk
-cns11643=x-euc-tw
-#
+
# Netscape private ...
-#
x-imap4-modified-utf7=x-imap4-modified-utf7
-x-euc-tw=x-euc-tw
x-mac-ce=x-mac-ce
x-mac-turkish=x-mac-turkish
x-mac-greek=x-mac-greek
x-mac-icelandic=x-mac-icelandic
x-mac-croatian=x-mac-croatian
x-mac-romanian=x-mac-romanian
-x-mac-cyrillic=x-mac-cyrillic
-x-mac-ukrainian=x-mac-cyrillic
x-mac-hebrew=x-mac-hebrew
x-mac-arabic=x-mac-arabic
x-mac-farsi=x-mac-farsi
@@ -112,168 +48,48 @@
iso-10646-ucs-2=UTF-16BE
x-iso-10646-ucs-2-be=UTF-16BE
x-iso-10646-ucs-2-le=UTF-16LE
-x-user-defined=x-user-defined
x-johab=x-johab
-#
+
# Aliases for ISO-8859-1
-#
latin1=ISO-8859-1
iso_8859-1=ISO-8859-1
iso8859-1=ISO-8859-1
-iso8859-2=ISO-8859-2
-iso8859-3=ISO-8859-3
-iso8859-4=ISO-8859-4
-iso8859-5=ISO-8859-5
-iso8859-6=ISO-8859-6
-iso8859-7=ISO-8859-7
-iso8859-8=ISO-8859-8
-iso8859-10=ISO-8859-10
-iso8859-13=ISO-8859-13
-iso8859-14=ISO-8859-14
-iso8859-15=ISO-8859-15
iso_8859-1:1987=ISO-8859-1
iso-ir-100=ISO-8859-1
l1=ISO-8859-1
-ibm819=ISO-8859-1
cp819=ISO-8859-1
csisolatin1=ISO-8859-1
-#
-# Aliases for ISO-8859-2
-#
-latin2=ISO-8859-2
-iso_8859-2=ISO-8859-2
-iso_8859-2:1987=ISO-8859-2
-iso-ir-101=ISO-8859-2
-l2=ISO-8859-2
-csisolatin2=ISO-8859-2
-#
-# Aliases for ISO-8859-3
-#
-latin3=ISO-8859-3
-iso_8859-3=ISO-8859-3
-iso_8859-3:1988=ISO-8859-3
-iso-ir-109=ISO-8859-3
-l3=ISO-8859-3
-csisolatin3=ISO-8859-3
-#
-# Aliases for ISO-8859-4
-#
-latin4=ISO-8859-4
-iso_8859-4=ISO-8859-4
-iso_8859-4:1988=ISO-8859-4
-iso-ir-110=ISO-8859-4
-l4=ISO-8859-4
-csisolatin4=ISO-8859-4
-#
-# Aliases for ISO-8859-5
-#
-cyrillic=ISO-8859-5
-iso_8859-5=ISO-8859-5
-iso_8859-5:1988=ISO-8859-5
-iso-ir-144=ISO-8859-5
-csisolatincyrillic=ISO-8859-5
-#
-# Aliases for ISO-8859-6
-#
-arabic=ISO-8859-6
-iso_8859-6=ISO-8859-6
-iso_8859-6:1987=ISO-8859-6
-iso-ir-127=ISO-8859-6
-ecma-114=ISO-8859-6
-asmo-708=ISO-8859-6
-csisolatinarabic=ISO-8859-6
-#
+
# Aliases for ISO-8859-6-I
-#
csiso88596i=ISO-8859-6-I
-#
+
# Aliases for ISO-8859-6-E
-#
csiso88596e=ISO-8859-6-E
-#
-# Aliases for ISO-8859-7
-#
-greek=ISO-8859-7
-greek8=ISO-8859-7
-sun_eu_greek=ISO-8859-7
-iso_8859-7=ISO-8859-7
-iso_8859-7:1987=ISO-8859-7
-iso-ir-126=ISO-8859-7
-elot_928=ISO-8859-7
-ecma-118=ISO-8859-7
-csisolatingreek=ISO-8859-7
-#
-# Aliases for ISO-8859-8
-#
-hebrew=ISO-8859-8
-iso_8859-8=ISO-8859-8
-visual=ISO-8859-8
-iso_8859-8:1988=ISO-8859-8
-iso-ir-138=ISO-8859-8
-csisolatinhebrew=ISO-8859-8
-#
+
# Aliases for ISO-8859-8-I
-#
-csiso88598i=ISO-8859-8-I
iso-8859-8i=ISO-8859-8-I
-logical=ISO-8859-8-I
-#
+
# Aliases for ISO-8859-8-E
-#
csiso88598e=ISO-8859-8-E
-#
-# Aliases for UTF-8
-#
-unicode-1-1-utf-8=UTF-8
-# nl_langinfo(CODESET) in HP/UX returns 'utf8' under UTF-8 locales
-utf8=UTF-8
-#
+
# Aliases for Shift_JIS
-#
-x-sjis=Shift_JIS
-shift-jis=Shift_JIS
-ms_kanji=Shift_JIS
-csshiftjis=Shift_JIS
-windows-31j=Shift_JIS
cp932=Shift_JIS
-sjis=Shift_JIS
-#
-# Aliases for EUC_JP
-#
-cseucpkdfmtjapanese=EUC-JP
-x-euc-jp=EUC-JP
-#
+
# Aliases for ISO-2022-JP
-#
-csiso2022jp=ISO-2022-JP
# The following are really not aliases ISO-2022-JP, but sharing the same decoder
iso-2022-jp-2=ISO-2022-JP
csiso2022jp2=ISO-2022-JP
-#
+
# Aliases for Big5
-#
-csbig5=Big5
-cn-big5=Big5
# x-x-big5 is not really a alias for Big5, add it only for MS FrontPage
-x-x-big5=Big5
# Sun Solaris
+
zh_tw-big5=Big5
-#
+
# Aliases for EUC-KR
-#
-cseuckr=EUC-KR
-ks_c_5601-1987=EUC-KR
-iso-ir-149=EUC-KR
-ks_c_5601-1989=EUC-KR
-ksc_5601=EUC-KR
-ksc5601=EUC-KR
-korean=EUC-KR
-csksc56011987=EUC-KR
5601=EUC-KR
-windows-949=EUC-KR
-#
+
# Aliases for GB2312
-#
# The following are really not aliases GB2312, add them only for MS FrontPage
gb_2312-80=GB2312
iso-ir-58=GB2312
@@ -281,107 +97,28 @@
csiso58gb231280=GB2312
csgb2312=GB2312
zh_cn.euc=GB2312
+
# Sun Solaris
gb_2312=GB2312
-#
-# Aliases for windows-125x
-#
-x-cp1250=windows-1250
-x-cp1251=windows-1251
-x-cp1252=windows-1252
-x-cp1253=windows-1253
-x-cp1254=windows-1254
-iso-8859-9=windows-1254
-iso8859-9=windows-1254
-iso88599=windows-1254
-latin5=windows-1254
-iso_8859-9=windows-1254
-iso_8859-9:1989=windows-1254
-iso-ir-148=windows-1254
-l5=windows-1254
-csisolatin5=windows-1254
-x-cp1255=windows-1255
-x-cp1256=windows-1256
-x-cp1257=windows-1257
-x-cp1258=windows-1258
-#
+
# Aliases for windows-874
-#
-windows-874=windows-874
-ibm874=windows-874
-dos-874=windows-874
-tis-620=windows-874
tis620=windows-874
-iso-8859-11=windows-874
-iso8859-11=windows-874
-iso885911=windows-874
-#
-# Aliases for macintosh
-#
-macintosh=macintosh
-x-mac-roman=macintosh
-mac=macintosh
-csmacintosh=macintosh
-#
+
# Aliases for IBM866
-#
-cp866=IBM866
cp-866=IBM866
-866=IBM866
-csibm866=IBM866
-#
-# Aliases for IBM850
-#
-cp850=IBM850
-850=IBM850
-csibm850=IBM850
-#
-# Aliases for IBM852
-#
-cp852=IBM852
-852=IBM852
-csibm852=IBM852
-#
-# Aliases for IBM855
-#
-cp855=IBM855
-855=IBM855
-csibm855=IBM855
-#
-# Aliases for IBM857
-#
-cp857=IBM857
-857=IBM857
-csibm857=IBM857
-#
-# Aliases for IBM862
-#
-cp862=IBM862
-862=IBM862
-csibm862=IBM862
-#
-# Aliases for IBM864
-#
-cp864=IBM864
-864=IBM864
-csibm864=IBM864
-ibm-864=IBM864
-#
+
# Aliases for T.61-8bit
-#
t.61=T.61-8bit
iso-ir-103=T.61-8bit
csiso103t618bit=T.61-8bit
-#
+
# Aliases for UTF-7
-#
x-unicode-2-0-utf-7=UTF-7
unicode-2-0-utf-7=UTF-7
unicode-1-1-utf-7=UTF-7
csunicode11utf7=UTF-7
-#
+
# Aliases for ISO-10646-UCS-2
-#
csunicode=UTF-16BE
csunicode11=UTF-16BE
iso-10646-ucs-basic=UTF-16BE
@@ -390,67 +127,15 @@
csunicodelatin1=UTF-16BE
iso-10646=UTF-16BE
iso-10646-j-1=UTF-16BE
-#
-# Aliases for ISO-8859-10
-#
-latin6=ISO-8859-10
-iso-ir-157=ISO-8859-10
-l6=ISO-8859-10
-# Currently .properties cannot handle : in key
-#iso_8859-10:1992=ISO-8859-10
-csisolatin6=ISO-8859-10
-#
-# Aliases for ISO-8859-15
-#
-iso_8859-15=ISO-8859-15
-csisolatin9=ISO-8859-15
-l9=ISO-8859-15
-#
-# Aliases for ISO-IR-111
-#
-ecma-cyrillic=ISO-IR-111
-csiso111ecmacyrillic=ISO-IR-111
-#
-# Aliases for ISO-2022-KR
-#
-csiso2022kr=ISO-2022-KR
-#
+
# Aliases for VISCII
-#
csviscii=VISCII
-#
-# Aliases for x-euc-tw
-#
-zh_tw-euc=x-euc-tw
-#
+
# Following names appears in unix nl_langinfo(CODESET)
# They can be compiled as platform specific if necessary
# DONT put things here if it does not look generic enough (like hp15CN)
-#
iso88591=ISO-8859-1
-iso88592=ISO-8859-2
-iso88593=ISO-8859-3
-iso88594=ISO-8859-4
-iso88595=ISO-8859-5
-iso88596=ISO-8859-6
-iso88597=ISO-8859-7
-iso88598=ISO-8859-8
-iso885910=ISO-8859-10
iso885912=ISO-8859-12
-iso885913=ISO-8859-13
-iso885914=ISO-8859-14
-iso885915=ISO-8859-15
-
-cp1250=windows-1250
-cp1251=windows-1251
-cp1252=windows-1252
-cp1253=windows-1253
-cp1254=windows-1254
-cp1255=windows-1255
-cp1256=windows-1256
-cp1257=windows-1257
-cp1258=windows-1258
-
-x-gbk=gbk
windows-936=gbk
ansi-1251=windows-1251
+
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/intl/charsetData.properties thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/intl/charsetData.properties
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/intl/charsetData.properties 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/intl/charsetData.properties 2014-11-26 21:44:59.000000000 +0000
@@ -24,7 +24,6 @@
x-mac-hebrew.isInternal = true
x-imap4-modified-utf7.isInternal = true
t.61-8bit.isInternal = true
-ibm864.isInternal = true
replacement.isInternal = true
t.61-8bit.notForOutgoing = true
@@ -33,13 +32,10 @@
us-ascii.notForOutgoing = true
iso-8859-6-e.notForOutgoing = true
iso-8859-6-i.notForOutgoing = true
-ibm864.notForOutgoing = true
-ibm869.notForOutgoing = true
ibm1125.notForOutgoing = true
ibm1131.notForOutgoing = true
iso-8859-8-e.notForOutgoing = true
iso-8859-8.notForOutgoing = true
-iso-2022-kr.notForOutgoing = true
x-johab.notForOutgoing = true
replacement.notForOutgoing = true
@@ -77,19 +73,10 @@
gb18030.2000-1.LangGroup = zh-CN
hkscs-1.LangGroup = zh-HK
hz-gb-2312.LangGroup = zh-CN
-ibm850.LangGroup = x-western
-ibm852.LangGroup = x-central-euro
-ibm855.LangGroup = x-cyrillic
-ibm857.LangGroup = tr
-ibm862.LangGroup = he
-ibm864.LangGroup = ar
ibm866.LangGroup = x-cyrillic
-ibm869.LangGroup = el
ibm1125.LangGroup = x-cyrillic
ibm1131.LangGroup = x-cyrillic
-iso-2022-cn.LangGroup = zh-CN
iso-2022-jp.LangGroup = ja
-iso-2022-kr.LangGroup = ko
iso-8859-1.LangGroup = x-western
iso-8859-10.LangGroup = x-western
iso-8859-14.LangGroup = x-western
@@ -110,7 +97,6 @@
jis_0208-1983.LangGroup = ja
koi8-r.LangGroup = x-cyrillic
koi8-u.LangGroup = x-cyrillic
-iso-ir-111.LangGroup = x-cyrillic
shift_jis.LangGroup = ja
windows-874.LangGroup = th
us-ascii.LangGroup = x-western
@@ -134,7 +120,6 @@
windows-1256.LangGroup = ar
windows-1257.LangGroup = x-baltic
windows-1258.LangGroup = x-western
-x-euc-tw.LangGroup = zh-TW
gbk.LangGroup = zh-CN
gb_2312-80.LangGroup = zh-CN
x-mac-ce.LangGroup = x-central-euro
@@ -161,10 +146,8 @@
euc-jp.isMultibyte = true
big5.isMultibyte = true
big5-hkscs.isMultibyte = true
-x-euc-tw.isMultibyte = true
gb2312.isMultibyte = true
hz-gb-2312.isMultibyte = true
-iso-2022-kr.isMultibyte = true
euc-kr.isMultibyte = true
x-johab.isMultibyte = true
utf-7.isMultibyte = true
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/intl/nsCharsetAlias.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/intl/nsCharsetAlias.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/intl/nsCharsetAlias.cpp 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/intl/nsCharsetAlias.cpp 2014-11-26 21:44:59.000000000 +0000
@@ -4,6 +4,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "mozilla/ArrayUtils.h"
+#include "mozilla/dom/EncodingUtils.h"
#include "nsCharsetAlias.h"
@@ -13,6 +14,7 @@
#include "nsUConvPropertySearch.h"
using namespace mozilla;
+using namespace mozilla::dom;
//
static const char* kAliases[][3] = {
@@ -25,11 +27,18 @@
nsCharsetAlias::GetPreferredInternal(const nsACString& aAlias,
nsACString& oResult)
{
+ // First check charsetalias.properties and if there is no match, continue to
+ // call EncodingUtils::FindEncodingForLabel.
nsAutoCString key(aAlias);
ToLowerCase(key);
- return nsUConvPropertySearch::SearchPropertyValue(kAliases,
+ nsresult rv = nsUConvPropertySearch::SearchPropertyValue(kAliases,
ArrayLength(kAliases), key, oResult);
+ if (NS_SUCCEEDED(rv)) {
+ return NS_OK;
+ }
+ return EncodingUtils::FindEncodingForLabel(key, oResult) ?
+ NS_OK: NS_ERROR_NOT_AVAILABLE;
}
//--------------------------------------------------------------
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/local/src/nsLocalMailFolder.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/local/src/nsLocalMailFolder.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/local/src/nsLocalMailFolder.cpp 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/local/src/nsLocalMailFolder.cpp 2014-11-26 21:44:59.000000000 +0000
@@ -197,6 +197,7 @@
rv = msgStore->RebuildIndex(this, mDatabase, aMsgWindow, this);
if (NS_SUCCEEDED(rv))
m_parsingFolder = true;
+
return rv;
}
@@ -1102,27 +1103,30 @@
NS_IMETHODIMP nsMsgLocalMailFolder::RefreshSizeOnDisk()
{
- uint32_t oldFolderSize = mFolderSize;
- mFolderSize = 0; // we set this to 0 to force it to get recalculated from disk
+ int64_t oldFolderSize = mFolderSize;
+ // we set this to unknown to force it to get recalculated from disk
+ mFolderSize = kSizeUnknown;
if (NS_SUCCEEDED(GetSizeOnDisk(&mFolderSize)))
NotifyIntPropertyChanged(kFolderSizeAtom, oldFolderSize, mFolderSize);
return NS_OK;
}
-NS_IMETHODIMP nsMsgLocalMailFolder::GetSizeOnDisk(uint32_t* aSize)
+NS_IMETHODIMP nsMsgLocalMailFolder::GetSizeOnDisk(int64_t *aSize)
{
NS_ENSURE_ARG_POINTER(aSize);
nsresult rv = NS_OK;
- if (!mFolderSize)
+ if (mFolderSize == kSizeUnknown)
{
- nsCOMPtr file;
+ nsCOMPtr file;
rv = GetFilePath(getter_AddRefs(file));
NS_ENSURE_SUCCESS(rv, rv);
+ // Use a temporary variable so that we keep mFolderSize on kSizeUnknown
+ // if GetFileSize() fails.
int64_t folderSize;
rv = file->GetFileSize(&folderSize);
NS_ENSURE_SUCCESS(rv, rv);
- mFolderSize = (uint32_t) folderSize;
+ mFolderSize = folderSize;
}
*aSize = mFolderSize;
return rv;
@@ -3140,6 +3144,17 @@
// Clear this before calling OnStopRunningUrl, in case the url listener
// tries to get the database.
m_parsingFolder = false;
+
+ // TODO: Updating the size should be pushed down into the msg store backend
+ // so that the size is recalculated as part of parsing the folder data
+ // (important for maildir), once GetSizeOnDisk is pushed into the msgStores
+ // (bug 1032360).
+ (void)RefreshSizeOnDisk();
+
+ // Update the summary totals so the front end will
+ // show the right thing.
+ UpdateSummaryTotals(true);
+
if (mReparseListener)
{
nsCOMPtr saveReparseListener = mReparseListener;
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/local/src/nsLocalMailFolder.h thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/local/src/nsLocalMailFolder.h
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/local/src/nsLocalMailFolder.h 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/local/src/nsLocalMailFolder.h 2014-11-26 21:44:59.000000000 +0000
@@ -131,12 +131,12 @@
NS_IMETHOD GetFolderURL(nsACString& url) MOZ_OVERRIDE;
- NS_IMETHOD GetManyHeadersToDownload(bool *retval) MOZ_OVERRIDE;
+ NS_IMETHOD GetManyHeadersToDownload(bool *retval) MOZ_OVERRIDE;
NS_IMETHOD GetDeletable (bool *deletable) MOZ_OVERRIDE;
- NS_IMETHOD GetSizeOnDisk(uint32_t* size) MOZ_OVERRIDE;
+ NS_IMETHOD GetSizeOnDisk(int64_t *size) MOZ_OVERRIDE;
- NS_IMETHOD GetDBFolderInfoAndDB(nsIDBFolderInfo **folderInfo, nsIMsgDatabase **db) MOZ_OVERRIDE;
+ NS_IMETHOD GetDBFolderInfoAndDB(nsIDBFolderInfo **folderInfo, nsIMsgDatabase **db) MOZ_OVERRIDE;
NS_IMETHOD DeleteMessages(nsIArray *messages,
nsIMsgWindow *msgWindow, bool
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/local/src/nsLocalUndoTxn.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/local/src/nsLocalUndoTxn.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/local/src/nsLocalUndoTxn.cpp 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/local/src/nsLocalUndoTxn.cpp 2014-11-26 21:44:59.000000000 +0000
@@ -460,7 +460,7 @@
return NS_OK;
}
-NS_IMETHODIMP nsLocalMoveCopyMsgTxn::OnItemIntPropertyChanged(nsIMsgFolder *item, nsIAtom *property, int32_t oldValue, int32_t newValue)
+NS_IMETHODIMP nsLocalMoveCopyMsgTxn::OnItemIntPropertyChanged(nsIMsgFolder *item, nsIAtom *property, int64_t oldValue, int64_t newValue)
{
return NS_OK;
}
@@ -512,7 +512,7 @@
return NS_OK;
}
-NS_IMETHODIMP nsLocalUndoFolderListener::OnItemIntPropertyChanged(nsIMsgFolder *item, nsIAtom *property, int32_t oldValue, int32_t newValue)
+NS_IMETHODIMP nsLocalUndoFolderListener::OnItemIntPropertyChanged(nsIMsgFolder *item, nsIAtom *property, int64_t oldValue, int64_t newValue)
{
return NS_OK;
}
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/local/test/unit/test_over4GBMailboxes.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/local/test/unit/test_over4GBMailboxes.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/local/test/unit/test_over4GBMailboxes.js 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/local/test/unit/test_over4GBMailboxes.js 2014-11-26 21:44:59.000000000 +0000
@@ -35,8 +35,10 @@
const kNearLimit = kSizeLimit - 0x1000000; // -16MiB
var gGotAlert = false;
-var gInboxFile = null;
-var gInboxSize = 0;
+var gInboxFile = null; // The mbox file storing the Inbox folder
+var gInboxSize = 0; // The size of the Inbox folder
+var gInbox; // The nsIMsgFolder object of the Inbox folder in Local Folders
+var gExpectedNewMessages = 0; // The number of messages pushed manually into the mbox file
// This alert() is triggered when file size becomes close (enough) to or
// exceeds 4 GiB.
@@ -47,23 +49,59 @@
gGotAlert = true;
}
+// A stub nsIMsgFolderListener that only listens to changes on Inbox and stores
+// the seen values for interesting folder properties so we can later test them.
+var FListener = {
+ folderSize: [-1], // an array of seen values of "FolderSize"
+ totalMsgs: [-1], // an array of seen values of "TotalMessages"
+
+ // Returns the value that is stored 'aBack' entries from the last one in the history.
+ sizeHistory: function (aBack) {
+ return this.folderSize[this.folderSize.length - 1 - aBack];
+ },
+ msgsHistory: function (aBack) {
+ return this.totalMsgs[this.totalMsgs.length - 1 - aBack];
+ },
+
+ OnItemAdded: function act_add(aRDFParentItem, aItem) {},
+ OnItemRemoved: function act_remove(aRDFParentItem, aItem) {},
+ OnItemPropertyChanged: function(aItem, aProperty, aOld, aNew) {},
+ OnItemIntPropertyChanged: function(aItem, aProperty, aOld, aNew) {
+ if (aItem.prettyName == "Inbox") {
+ dump("Property change on folder Inbox:" + aProperty + "=" + aOld + "->" + aNew + "\n");
+ if (aProperty == "FolderSize")
+ this.folderSize.push(aNew);
+ else if (aProperty == "TotalMessages")
+ this.totalMsgs.push(aNew);
+ }
+ },
+ OnItemBoolPropertyChanged: function(aItem, aProperty, aOld, aNew) {},
+ OnItemUnicharPropertyChanged: function(aItem, aProperty, aOld, aNew) {},
+ OnItemPropertyFlagChanged: function(aItem, aProperty, aOld, aNew) {},
+ OnItemEvent: function(aFolder, aEvent) {},
+};
+
/**
* Grow local inbox folder to the wanted size using direct appending
* to the underlying file. The folder is filled with copies of a dummy
* message with kSparseBlockSize bytes in size.
* The file is marked as sparse in the filesystem so that it does not
* really take 4GiB and working with it is faster.
+ *
+ * @return The number of messages created in the folder file.
*/
function growInbox(aWantedSize) {
+ let msgsAdded = 0;
// Put a single message in the Inbox.
let messageGenerator = new MessageGenerator();
let message = messageGenerator.makeMessage();
// Refresh 'gInboxFile'.
- gInboxFile = localAccountUtils.inboxFolder.filePath;
+ gInboxFile = gInbox.filePath;
+ let localSize = 0;
let mboxString = message.toMboxString();
- let plugStore = localAccountUtils.inboxFolder.msgStore;
+ let plugStore = gInbox.msgStore;
// Grow local inbox to our wished size that is below the max limit.
do {
let nextOffset = gInboxFile.fileSize +
@@ -73,8 +111,7 @@
// Get stream to write a new message.
let reusable = new Object;
let newMsgHdr = new Object;
- let outputStream = plugStore.getNewMsgOutputStream(localAccountUtils.inboxFolder,
- newMsgHdr, reusable)
+ let outputStream = plugStore.getNewMsgOutputStream(gInbox, newMsgHdr, reusable)
.QueryInterface(Ci.nsISeekableStream);
// Write message header.
outputStream.write(mboxString, mboxString.length);
@@ -90,14 +127,18 @@
outputStream.write("\r\n", 2);
outputStream.close();
plugStore.finishNewMessage(outputStream, newMsgHdr);
+ msgsAdded++;
// Refresh 'gInboxFile'.
- gInboxFile = localAccountUtils.inboxFolder.filePath;
+ gInboxFile = gInbox.filePath;
+ localSize = gInboxFile.fileSize;
}
- while (gInboxFile.fileSize < aWantedSize);
+ while (localSize < aWantedSize);
- do_print("Local inbox size = " + gInboxFile.fileSize + "bytes = " +
- gInboxFile.fileSize / 1024 / 1024 + "MiB");
+ do_print("Local inbox size = " + localSize + "bytes = " +
+ mailTestUtils.toMiBString(localSize));
+ do_check_eq(localSize, aWantedSize);
+ return msgsAdded;
}
function run_test()
@@ -108,7 +149,8 @@
// all the operations.
do_test_pending();
- gInboxFile = localAccountUtils.inboxFolder.filePath;
+ gInbox = localAccountUtils.inboxFolder;
+ gInboxFile = gInbox.filePath;
let neededFreeSpace = kSizeLimit + 0x10000000; // +256MiB
// On Windows, check whether the drive is NTFS. If it is, mark the file as
@@ -134,16 +176,17 @@
return;
}
- // Grow inbox to size near the max limit.
- growInbox(kNearLimit);
+ MailServices.mailSession.AddFolderListener(FListener, Ci.nsIFolderListener.all);
+
+ // Grow inbox to a size near the max limit.
+ gExpectedNewMessages = growInbox(kNearLimit);
// Force the db closed, so that getDatabaseWithReparse will notice
// that it's out of date.
- localAccountUtils.inboxFolder.msgDatabase.ForceClosed();
- localAccountUtils.inboxFolder.msgDatabase = null;
+ gInbox.msgDatabase.ForceClosed();
+ gInbox.msgDatabase = null;
try {
- localAccountUtils.inboxFolder.getDatabaseWithReparse(ParseListener_run_test,
- gDummyMsgWindow);
+ gInbox.getDatabaseWithReparse(ParseListener_run_test, gDummyMsgWindow);
} catch (ex) {
do_check_eq(ex.result, Cr.NS_ERROR_NOT_INITIALIZED);
}
@@ -179,6 +222,7 @@
let localInboxSize = gInboxFile.fileSize;
do_check_true(localInboxSize > kNearLimit);
do_check_true(localInboxSize < kSizeLimit);
+ do_check_eq(gInbox.sizeOnDisk, localInboxSize);
// The big file is between 1 and 2 MiB. Append it 16 times to attempt to cross the 4GiB limit.
gPOP3Pump.files = ["../../../data/mime-torture", "../../../data/mime-torture",
"../../../data/mime-torture", "../../../data/mime-torture",
@@ -203,16 +247,15 @@
gPOP3Pump = null;
// Grow inbox to size greater than the max limit (+16 MiB).
- growInbox(kSizeLimit + 0x1000000);
+ gExpectedNewMessages = growInbox(kSizeLimit + 0x1000000);
do_check_true(gInboxFile.fileSize > kSizeLimit);
// Force the db closed, so that getDatabaseWithReparse will notice
// that it's out of date.
- localAccountUtils.inboxFolder.msgDatabase.ForceClosed();
- localAccountUtils.inboxFolder.msgDatabase = null;
+ gInbox.msgDatabase.ForceClosed();
+ gInbox.msgDatabase = null;
try {
- localAccountUtils.inboxFolder.getDatabaseWithReparse(ParseListener_growOver4GiB,
- gDummyMsgWindow);
+ gInbox.getDatabaseWithReparse(ParseListener_growOver4GiB, gDummyMsgWindow);
} catch (ex) {
do_check_eq(ex.result, Cr.NS_ERROR_NOT_INITIALIZED);
}
@@ -240,7 +283,7 @@
do_check_true(gGotAlert);
// Make sure inbox file did not grow (i.e., no data were appended).
- let newLocalInboxSize = localAccountUtils.inboxFolder.filePath.fileSize;
+ let newLocalInboxSize = gInbox.filePath.fileSize;
do_print("Local inbox size (after copyFileMessageInLocalFolder()) = " +
newLocalInboxSize);
do_check_eq(newLocalInboxSize, localInboxSize);
@@ -251,11 +294,10 @@
// Force the db closed, so that getDatabaseWithReparse will notice
// that it's out of date.
- localAccountUtils.inboxFolder.msgDatabase.ForceClosed();
- localAccountUtils.inboxFolder.msgDatabase = null;
+ gInbox.msgDatabase.ForceClosed();
+ gInbox.msgDatabase = null;
try {
- localAccountUtils.inboxFolder.getDatabaseWithReparse(ParseListener_copyIntoOver4GiB,
- gDummyMsgWindow);
+ gInbox.getDatabaseWithReparse(ParseListener_copyIntoOver4GiB, gDummyMsgWindow);
} catch (ex) {
do_check_eq(ex.result, Cr.NS_ERROR_NOT_INITIALIZED);
}
@@ -271,7 +313,7 @@
gInboxSize = gInboxFile.fileSize;
do_check_true(gInboxSize > kSizeLimit);
// Delete the last small message at folder end.
- let msgDB = localAccountUtils.inboxFolder.msgDatabase;
+ let msgDB = gInbox.msgDatabase;
let enumerator = msgDB.EnumerateMessages();
let messages = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray);
while (enumerator.hasMoreElements()) {
@@ -281,7 +323,7 @@
messages.appendElement(header, false);
}
}
- localAccountUtils.inboxFolder.deleteMessages(messages, null, true, false, null, false);
+ gInbox.deleteMessages(messages, null, true, false, null, false);
/* Unfortunately, the compaction now would kill the sparse markings in the file
* so it will really take 4GiB of space in the filesystem and may be slow
@@ -291,11 +333,11 @@
if (Math.random() * 100 < 1) {
// Note: compact() will also add 'X-Mozilla-Status' and 'X-Mozilla-Status2'
// lines to message(s).
- localAccountUtils.inboxFolder.compact(CompactListener_compactOver4GiB, null);
+ gInbox.compact(CompactListener_compactOver4GiB, null);
// Execution continues in compactUnder4GiB() when done.
} else {
// Just continue directly without compacting yet.
- dump("compactOver4GiB test skipped deliberately due to long expected run time. It will may be run in other test run with a 1 in 100 chance.");
+ dump("compactOver4GiB test skipped deliberately due to long expected run time. It will be run in other test run with a 1 in 100 chance.");
compactUnder4GiB();
}
}
@@ -306,10 +348,23 @@
*/
function compactUnder4GiB()
{
+ // The folder is still above 4GB.
do_check_true(gInboxFile.fileSize > kSizeLimit);
+ let folderSize = gInbox.sizeOnDisk;
+ let totalMsgs = gInbox.getTotalMessages(false);
+ // Let's close the database and re-open the folder (hopefully dumping memory caches)
+ // and re-reading the values from disk (msg database). That is to test if
+ // the values were properly serialized to the database.
+ gInbox.ForceDBClosed();
+ gInbox.msgDatabase = null;
+ gInbox.getDatabaseWOReparse();
+
+ do_check_eq(gInbox.sizeOnDisk, folderSize);
+ do_check_eq(gInbox.getTotalMessages(false), totalMsgs);
+
// Very first header in msgDB is retained,
// then all other headers are marked as deleted.
- let msgDB = localAccountUtils.inboxFolder.msgDatabase;
+ let msgDB = gInbox.msgDatabase;
let enumerator = msgDB.EnumerateMessages();
let firstHdr = true;
let messages = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray);
@@ -319,11 +374,11 @@
messages.appendElement(header, false);
firstHdr = false;
}
- localAccountUtils.inboxFolder.deleteMessages(messages, null, true, false, null, false);
+ gInbox.deleteMessages(messages, null, true, false, null, false);
// Note: compact() will also add 'X-Mozilla-Status' and 'X-Mozilla-Status2'
// lines to message(s).
- localAccountUtils.inboxFolder.compact(CompactListener_compactUnder4GiB, null);
+ gInbox.compact(CompactListener_compactUnder4GiB, null);
// Test ends after compaction is done.
}
@@ -333,8 +388,14 @@
OnStopRunningUrl: function (aUrl, aExitCode) {
// Check: reparse successful
do_check_eq(aExitCode, 0);
- do_check_neq(localAccountUtils.inboxFolder.msgDatabase, null);
- do_check_true(localAccountUtils.inboxFolder.msgDatabase.summaryValid);
+ do_check_neq(gInbox.msgDatabase, null);
+ do_check_true(gInbox.msgDatabase.summaryValid);
+ // Bug 813459
+ // Check if the OnItemIntPropertyChanged folder listener hook can return
+ // values below 2^32 for properties which are not 64 bits long.
+ do_check_eq(FListener.msgsHistory(0), gExpectedNewMessages);
+ do_check_eq(FListener.msgsHistory(0), gInbox.getTotalMessages(false));
+ do_check_eq(FListener.sizeHistory(0), gInbox.sizeOnDisk);
downloadUnder4GiB();
}
@@ -346,8 +407,18 @@
OnStopRunningUrl: function (aUrl, aExitCode) {
// Check: reparse successful
do_check_eq(aExitCode, 0);
- do_check_neq(localAccountUtils.inboxFolder.msgDatabase, null);
- do_check_true(localAccountUtils.inboxFolder.msgDatabase.summaryValid);
+ do_check_neq(gInbox.msgDatabase, null);
+ do_check_true(gInbox.msgDatabase.summaryValid);
+ // Bug 789679
+ // Check if the public SizeOnDisk method can return sizes above 4GB.
+ do_check_true(gInbox.sizeOnDisk > kSizeLimit);
+ // Bug 813459
+ // Check if the OnItemIntPropertyChanged folder listener hook can return
+ // values above 2^32 for properties where it is relevant.
+ do_check_eq(FListener.sizeHistory(0), gInbox.sizeOnDisk);
+ do_check_true(FListener.sizeHistory(1) < FListener.sizeHistory(0));
+ do_check_eq(FListener.msgsHistory(0),
+ FListener.msgsHistory(1) + gExpectedNewMessages);
copyIntoOver4GiB();
}
@@ -359,8 +430,8 @@
OnStopRunningUrl: function (aUrl, aExitCode) {
// Check: reparse successful
do_check_eq(aExitCode, 0);
- do_check_neq(localAccountUtils.inboxFolder.msgDatabase, null);
- do_check_true(localAccountUtils.inboxFolder.msgDatabase.summaryValid);
+ do_check_neq(gInbox.msgDatabase, null);
+ do_check_true(gInbox.msgDatabase.summaryValid);
compactOver4GiB();
}
@@ -372,13 +443,14 @@
OnStopRunningUrl: function (aUrl, aExitCode) {
// Check: message successfully copied.
do_check_eq(aExitCode, 0);
- do_check_true(localAccountUtils.inboxFolder.msgDatabase.summaryValid);
+ do_check_true(gInbox.msgDatabase.summaryValid);
// Check that folder size is still above max limit ...
- let localInboxSize = localAccountUtils.inboxFolder.filePath.fileSize;
- do_print("Local inbox size (after compact()) = " + localInboxSize);
+ let localInboxSize = gInbox.filePath.fileSize;
+ do_print("Local inbox size (after compact 1) = " + localInboxSize);
do_check_true(localInboxSize > kSizeLimit);
// ... but it got smaller by removing 1 message.
do_check_true(gInboxSize > localInboxSize);
+ do_check_eq(gInbox.sizeOnDisk, localInboxSize);
compactUnder4GiB();
}
@@ -390,14 +462,17 @@
OnStopRunningUrl: function (aUrl, aExitCode) {
// Check: message successfully copied.
do_check_eq(aExitCode, 0);
- do_check_true(localAccountUtils.inboxFolder.msgDatabase.summaryValid);
+ do_check_true(gInbox.msgDatabase.summaryValid);
// Check that folder size isn't much bigger than our sparse block size, ...
- let localInboxSize = localAccountUtils.inboxFolder.filePath.fileSize;
- do_print("Local inbox size (after compact()) = " + localInboxSize);
+ let localInboxSize = gInbox.filePath.fileSize;
+ do_print("Local inbox size (after compact 2) = " + localInboxSize);
+ do_check_eq(gInbox.sizeOnDisk, localInboxSize);
do_check_true(localInboxSize < kSparseBlockSize + 1000);
// ... i.e., that we just have one message.
- do_check_eq(localAccountUtils.inboxFolder.getTotalMessages(false), 1);
+ do_check_eq(gInbox.getTotalMessages(false), 1);
+ do_check_eq(FListener.sizeHistory(0), gInbox.sizeOnDisk);
+ do_check_eq(FListener.msgsHistory(0), 1);
endTest();
}
@@ -405,9 +480,10 @@
function endTest()
{
+ MailServices.mailSession.RemoveFolderListener(FListener);
// Free up disk space - if you want to look at the file after running
// this test, comment out this line.
- localAccountUtils.inboxFolder.filePath.remove(false);
+ gInbox.filePath.remove(false);
do_test_finished();
}
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/mime/src/jsmime.jsm thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/mime/src/jsmime.jsm
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/mime/src/jsmime.jsm 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/mime/src/jsmime.jsm 2014-11-26 21:45:00.000000000 +0000
@@ -3,7 +3,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */
// vim:set ts=2 sw=2 sts=2 et ft=javascript:
-Components.utils.import("resource:///modules/Services.jsm");
+Components.utils.import("resource://gre/modules/Services.jsm");
/**
* This file exports the JSMime code, polyfilling code as appropriate for use in
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/mime/src/mimeJSComponents.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/mime/src/mimeJSComponents.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/mime/src/mimeJSComponents.js 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/mime/src/mimeJSComponents.js 2014-11-26 21:45:00.000000000 +0000
@@ -2,10 +2,10 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-Components.utils.import("resource:///modules/Deprecated.jsm");
+Components.utils.import("resource://gre/modules/Deprecated.jsm");
Components.utils.import("resource:///modules/jsmime.jsm");
Components.utils.import("resource:///modules/mimeParser.jsm");
-Components.utils.import("resource:///modules/XPCOMUtils.jsm");
+Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
function HeaderHandler() {
this.value = "";
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/mime/src/mimeParser.jsm thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/mime/src/mimeParser.jsm
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/mime/src/mimeParser.jsm 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/mime/src/mimeParser.jsm 2014-11-26 21:45:00.000000000 +0000
@@ -3,8 +3,8 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */
// vim:set ts=2 sw=2 sts=2 et ft=javascript:
-Components.utils.import("resource:///modules/XPCOMUtils.jsm");
-Components.utils.import("resource:///modules/Services.jsm");
+Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource:///modules/jsmime.jsm");
var EXPORTED_SYMBOLS = ["MimeParser"];
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/mime/test/unit/test_structured_headers.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/mime/test/unit/test_structured_headers.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/mime/test/unit/test_structured_headers.js 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/mime/test/unit/test_structured_headers.js 2014-11-26 21:45:00.000000000 +0000
@@ -5,7 +5,7 @@
// This tests the msgIStructuredHeaders and msgIWritableStructuredHeaders
// interfaces.
-Components.utils.import("resource:///modules/Services.jsm");
+Components.utils.import("resource://gre/modules/Services.jsm");
/// Verify that a specific XPCOM error code is thrown.
function verifyError(block, errorCode) {
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/news/src/nsNewsFolder.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/news/src/nsNewsFolder.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/news/src/nsNewsFolder.cpp 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/news/src/nsNewsFolder.cpp 2014-11-26 21:45:00.000000000 +0000
@@ -12,6 +12,7 @@
#include "nsIMsgMailNewsUrl.h"
#include "nsNewsFolder.h"
#include "nsMsgFolderFlags.h"
+#include "MailNewsTypes.h"
#include "prprf.h"
#include "prsystem.h"
#include "nsIArray.h"
@@ -73,8 +74,6 @@
#define kNewsSortOffset 9000
-#define kSizeUnknown 1
-
#define NEWS_SCHEME "news:"
#define SNEWS_SCHEME "snews:"
@@ -758,7 +757,7 @@
return NS_OK;
}
-NS_IMETHODIMP nsMsgNewsFolder::GetSizeOnDisk(uint32_t *size)
+NS_IMETHODIMP nsMsgNewsFolder::GetSizeOnDisk(int64_t *size)
{
NS_ENSURE_ARG_POINTER(size);
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/news/src/nsNewsFolder.h thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/news/src/nsNewsFolder.h
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/news/src/nsNewsFolder.h 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/news/src/nsNewsFolder.h 2014-11-26 21:45:00.000000000 +0000
@@ -53,7 +53,7 @@
NS_IMETHOD RefreshSizeOnDisk();
- NS_IMETHOD GetSizeOnDisk(uint32_t *size) MOZ_OVERRIDE;
+ NS_IMETHOD GetSizeOnDisk(int64_t *size) MOZ_OVERRIDE;
NS_IMETHOD GetDBFolderInfoAndDB(nsIDBFolderInfo **folderInfo,
nsIMsgDatabase **db) MOZ_OVERRIDE;
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/test/fakeserver/pop3d.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/test/fakeserver/pop3d.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/test/fakeserver/pop3d.js 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/test/fakeserver/pop3d.js 2014-11-26 21:45:00.000000000 +0000
@@ -13,7 +13,7 @@
'POP3_RFC5034_handler'
];
-Components.utils.import("resource://gre/modules/IOUtils.js");
+Components.utils.import("resource:///modules/IOUtils.js");
Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource://testing-common/mailnews/auth.js");
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/test/resources/IMAPpump.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/test/resources/IMAPpump.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/test/resources/IMAPpump.js 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/test/resources/IMAPpump.js 2014-11-26 21:45:00.000000000 +0000
@@ -18,8 +18,8 @@
];
Components.utils.import("resource:///modules/mailServices.js");
-Components.utils.import("resource:///modules/Services.jsm");
-Components.utils.import("resource:///modules/XPCOMUtils.jsm");
+Components.utils.import("resource://gre/modules/Services.jsm");
+Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
Components.utils.import("resource://testing-common/mailnews/localAccountUtils.js");
Components.utils.import("resource://testing-common/mailnews/maild.js");
Components.utils.import("resource://testing-common/mailnews/auth.js");
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/test/resources/passwordStorage.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/test/resources/passwordStorage.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mailnews/test/resources/passwordStorage.js 2014-11-14 09:36:40.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mailnews/test/resources/passwordStorage.js 2014-11-26 21:45:00.000000000 +0000
@@ -1,7 +1,7 @@
if (typeof gDEPTH == "undefined")
do_throw("gDEPTH must be defined when using passwordStorage.js");
-Components.utils.import("resource:///modules/Services.jsm");
+Components.utils.import("resource://gre/modules/Services.jsm");
/**
* Use the given storage database as the current signon database.
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/base/nsAccessibilityService.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/base/nsAccessibilityService.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/base/nsAccessibilityService.cpp 2014-11-14 09:37:10.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/base/nsAccessibilityService.cpp 2014-11-26 21:45:44.000000000 +0000
@@ -1555,6 +1555,9 @@
if (aContext->IsList() &&
aContext->GetContent() == aContent->GetParent()) {
newAcc = new HTMLLIAccessible(aContent, document);
+ } else {
+ // Otherwise create a generic text accessible to avoid text jamming.
+ newAcc = new HyperTextAccessibleWrap(aContent, document);
}
break;
case eHTMLSelectListType:
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/base/nsAccessibilityService.h thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/base/nsAccessibilityService.h
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/base/nsAccessibilityService.h 2014-11-14 09:37:10.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/base/nsAccessibilityService.h 2014-11-26 21:45:44.000000000 +0000
@@ -251,6 +251,8 @@
inline bool
IPCAccessibilityActive()
{
+ // XXX temporarily disable ipc accessibility because of crashes.
+return false;
#ifdef MOZ_B2G
return false;
#else
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/generic/HyperTextAccessible.cpp thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/generic/HyperTextAccessible.cpp
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/generic/HyperTextAccessible.cpp 2014-11-14 09:37:10.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/generic/HyperTextAccessible.cpp 2014-11-26 21:45:45.000000000 +0000
@@ -508,7 +508,7 @@
const bool kIsKeyboardSelect = true; // is keyboard selection
const bool kIsVisualBidi = false; // use visual order for bidi text
nsPeekOffsetStruct pos(aAmount, aDirection, innerContentOffset,
- 0, kIsJumpLinesOk, kIsScrollViewAStop,
+ nsPoint(0, 0), kIsJumpLinesOk, kIsScrollViewAStop,
kIsKeyboardSelect, kIsVisualBidi,
aWordMovementType);
nsresult rv = frameAtOffset->PeekOffset(&pos);
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/jsat/Presentation.jsm thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/jsat/Presentation.jsm
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/jsat/Presentation.jsm 2014-11-14 09:37:10.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/jsat/Presentation.jsm 2014-11-26 21:45:45.000000000 +0000
@@ -451,6 +451,18 @@
UtteranceGenerator.genForLiveRegion(aContext, aIsHide, aModifiedText));
};
+AndroidPresenter.prototype.noMove =
+ function AndroidPresenter_noMove(aMoveMethod) {
+ return {
+ type: this.type,
+ details: [
+ { eventType: this.ANDROID_VIEW_ACCESSIBILITY_FOCUSED,
+ exitView: aMoveMethod,
+ text: ['']
+ }]
+ };
+ };
+
/**
* A B2G presenter for Gaia.
*/
@@ -495,7 +507,8 @@
pattern: this.PIVOT_CHANGE_HAPTIC_PATTERN,
isKey: Utils.isActivatableOnFingerUp(aContext.accessible),
reason: this.pivotChangedReasons[aReason],
- isUserInput: aIsUserInput
+ isUserInput: aIsUserInput,
+ hints: aContext.interactionHints
}
}
};
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/jsat/Utils.jsm thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/jsat/Utils.jsm
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/jsat/Utils.jsm 2014-11-14 09:37:10.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/jsat/Utils.jsm 2014-11-26 21:45:45.000000000 +0000
@@ -828,6 +828,25 @@
}
},
+ /**
+ * Get interaction hints for the context ancestry.
+ * @return {Array} Array of interaction hints.
+ */
+ get interactionHints() {
+ let hints = [];
+ this.newAncestry.concat(this.accessible).reverse().forEach(aAccessible => {
+ let hint = Utils.getAttributes(aAccessible)['moz-hint'];
+ if (hint) {
+ hints.push(hint);
+ } else if (aAccessible.actionCount > 0) {
+ hints.push({
+ string: Utils.AccRetrieval.getStringRole(aAccessible.role) + '-hint'
+ });
+ }
+ });
+ return hints;
+ },
+
/*
* A subtree generator function, used to generate a flattened
* list of the accessible's subtree in pre or post order.
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/tests/mochitest/jsat/a11y.ini thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/tests/mochitest/jsat/a11y.ini
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/tests/mochitest/jsat/a11y.ini 2014-11-14 09:37:10.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/tests/mochitest/jsat/a11y.ini 2014-11-26 21:45:45.000000000 +0000
@@ -15,6 +15,7 @@
skip-if = buildapp == 'mulet'
[test_explicit_names.html]
[test_gesture_tracker.html]
+[test_hints.html]
[test_landmarks.html]
[test_live_regions.html]
[test_output.html]
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/tests/mochitest/jsat/output.js thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/tests/mochitest/jsat/output.js
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/tests/mochitest/jsat/output.js 2014-11-14 09:37:10.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/tests/mochitest/jsat/output.js 2014-11-26 21:45:45.000000000 +0000
@@ -99,3 +99,16 @@
}
testObjectOutput(aAccOrElmOrID, generator);
}
+
+function testHints(expected, aAccOrElmOrID, aOldAccOrElmOrID) {
+ var accessible = getAccessible(aAccOrElmOrID);
+ var oldAccessible = aOldAccOrElmOrID !== null ?
+ getAccessible(aOldAccOrElmOrID || 'root') : null;
+ var context = new PivotContext(accessible, oldAccessible);
+ var hints = context.interactionHints;
+
+ isDeeply(hints, expected,
+ "Context hitns are correct for " + aAccOrElmOrID +
+ " (hints: " + JSON.stringify(hints) + ") ==" +
+ " (expected: " + JSON.stringify(expected) + ")");
+}
diff -Nru thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/tests/mochitest/jsat/test_hints.html thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/tests/mochitest/jsat/test_hints.html
--- thunderbird-trunk-36.0~a1~hg20141114r17084.215607/mozilla/accessible/tests/mochitest/jsat/test_hints.html 1970-01-01 00:00:00.000000000 +0000
+++ thunderbird-trunk-36.0~a1~hg20141126r17147.217518/mozilla/accessible/tests/mochitest/jsat/test_hints.html 2014-11-26 21:45:45.000000000 +0000
@@ -0,0 +1,85 @@
+
+
+ [AccessFu] Interaction Hints
+
+
+
+
+
+
+
+
+