Revert to 176fae7de173 which was fine.

Sorry for breaking the history, won't trust TBPL, ever again. :(
This commit is contained in:
Ehsan Akhgari 2011-09-02 09:15:54 -04:00
Родитель 7065ecc47c
Коммит 624cdf4412
18 изменённых файлов: 170 добавлений и 22 удалений

Просмотреть файл

@ -1,8 +1,7 @@
pref("startup.homepage_override_url","http://www.mozilla.org/projects/%APP%/%VERSION%/whatsnew/");
pref("startup.homepage_welcome_url","http://www.mozilla.org/projects/%APP%/%VERSION%/firstrun/");
// The time interval between checks for a new version (in seconds)
// nightly=8 hours, official=24 hours
pref("app.update.interval", 28800);
pref("app.update.interval", 7200); // 2 hours
// The time interval between the downloading of mar file chunks in the
// background (in seconds)
pref("app.update.download.backgroundInterval", 60);

Просмотреть файл

@ -1,8 +1,7 @@
pref("startup.homepage_override_url","http://www.mozilla.org/projects/%APP%/%VERSION%/whatsnew/");
pref("startup.homepage_welcome_url","http://www.mozilla.org/projects/%APP%/%VERSION%/firstrun/");
// The time interval between checks for a new version (in seconds)
// nightly=8 hours, official=24 hours
pref("app.update.interval", 28800);
pref("app.update.interval", 86400); // 24 hours
// The time interval between the downloading of mar file chunks in the
// background (in seconds)
pref("app.update.download.backgroundInterval", 60);

Просмотреть файл

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg">
<animate id="a" end="a.end+6s" />
</svg>

После

Ширина:  |  Высота:  |  Размер: 82 B

Просмотреть файл

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" class="reftest-wait">
<script>
window.addEventListener("load", function() {
setTimeout(function() {
document.documentElement.setCurrentTime(0);
document.documentElement.removeAttribute("class");
}, 0);
}, false);
</script>
<set id="c"/><set id="b" begin="c.begin; b.begin"/>
</svg>

После

Ширина:  |  Высота:  |  Размер: 346 B

Просмотреть файл

@ -37,6 +37,8 @@ load 615872-1.svg
load 650732-1.svg
load 665334-1.svg
load 669225-1.svg
load 670313-1.svg
load 669225-2.svg
load 670313-1.svg
load 678822-1.svg
load 678847-1.svg
load 678938-1.svg

Просмотреть файл

@ -478,6 +478,21 @@ nsSMILAnimationFunction::InterpolateResult(const nsSMILValueArray& aValues,
if (calcMode == CALC_DISCRETE || NS_FAILED(rv)) {
double scaledSimpleProgress =
ScaleSimpleProgress(simpleProgress, CALC_DISCRETE);
// Floating-point errors can mean that, for example, a sample time of 29s in
// a 100s duration animation gives us a simple progress of 0.28999999999
// instead of the 0.29 we'd expect. Normally this isn't a noticeable
// problem, but when we have sudden jumps in animation values (such as is
// the case here with discrete animation) we can get unexpected results.
//
// To counteract this, before we perform a floor() on the animation
// progress, we add a tiny fudge factor to push us into the correct interval
// in cases where floating-point errors might cause us to fall short.
static const double kFloatingPointFudgeFactor = 1.0e-16;
if (scaledSimpleProgress + kFloatingPointFudgeFactor <= 1.0) {
scaledSimpleProgress += kFloatingPointFudgeFactor;
}
if (IsToAnimation()) {
// We don't follow SMIL 3, 12.6.4, where discrete to animations
// are the same as <set> animations. Instead, we treat it as a

Просмотреть файл

@ -758,10 +758,10 @@ nsSMILTimedElement::Rewind()
mSeekState == SEEK_BACKWARD_FROM_ACTIVE,
"Rewind in the middle of a forwards seek?");
ClearIntervals();
// ClearIntervals puts us in to the POSTACTIVE state but we're doing a full
// rewind so go back to the startup state
// Putting us in the startup state will ensure we skip doing any interval
// updates
mElementState = STATE_STARTUP;
ClearIntervals();
UnsetBeginSpec(RemoveNonDynamic);
UnsetEndSpec(RemoveNonDynamic);
@ -784,6 +784,8 @@ nsSMILTimedElement::Rewind()
mPrevRegisteredMilestone = sMaxMilestone;
RegisterMilestone();
NS_ABORT_IF_FALSE(!mCurrentInterval,
"Current interval is set at end of rewind");
}
namespace
@ -1332,7 +1334,9 @@ nsSMILTimedElement::ClearSpecs(TimeValueSpecList& aSpecs,
void
nsSMILTimedElement::ClearIntervals()
{
mElementState = STATE_POSTACTIVE;
if (mElementState != STATE_STARTUP) {
mElementState = STATE_POSTACTIVE;
}
mCurrentRepeatIteration = 0;
ResetCurrentInterval();
@ -1684,14 +1688,15 @@ nsSMILTimedElement::GetNextInterval(const nsSMILInterval* aPrevInterval,
// a) We never had any end attribute to begin with (and hence we should
// just use the active duration after allowing for the possibility of
// an end instance provided by a DOM call), OR
// b) We have an end attribute but no end instances--this is a special
// case that is needed for syncbase timing so that animations of the
// following sort: <animate id="a" end="a.begin+1s" ... /> can be
// resolved (see SVGT 1.2 Test Suite animate-elem-221-t.svg) by first
// establishing an interval of unresolved duration, OR
// b) We have no resolved (not incl. indefinite) end instances
// (SMIL only says "if the instance list is empty"--but if we have
// indefinite/unresolved instance times then there must be a good
// reason we haven't used them (since they'll be >= tempBegin) such as
// avoiding creating a self-referential loop. In any case, the interval
// should be allowed to be open.), OR
// c) We have end events which leave the interval open-ended.
PRBool openEndedIntervalOk = mEndSpecs.IsEmpty() ||
mEndInstances.IsEmpty() ||
!HaveResolvedEndTimes() ||
EndHasEventConditions();
if (!tempEnd && !openEndedIntervalOk)
return PR_FALSE; // Bad interval
@ -2248,6 +2253,17 @@ nsSMILTimedElement::GetPreviousInterval() const
: mOldIntervals[mOldIntervals.Length()-1].get();
}
PRBool
nsSMILTimedElement::HaveResolvedEndTimes() const
{
if (mEndInstances.IsEmpty())
return PR_FALSE;
// mEndInstances is sorted so if the first time is not resolved then none of
// them are
return mEndInstances[0]->Time().IsResolved();
}
PRBool
nsSMILTimedElement::EndHasEventConditions() const
{

Просмотреть файл

@ -525,6 +525,7 @@ protected:
const nsSMILInstanceTime* GetEffectiveBeginInstance() const;
const nsSMILInterval* GetPreviousInterval() const;
PRBool HasPlayed() const { return !mOldIntervals.IsEmpty(); }
PRBool HaveResolvedEndTimes() const;
PRBool EndHasEventConditions() const;
// Reset the current interval by first passing ownership to a temporary

Просмотреть файл

@ -172,6 +172,8 @@ fixup-unbounded.patch: Hack to work around bad assumption.
quartz-get-image-performance: Make cairo_quartz_get_image faster in the failure case by not flushing unless we are going to succeed.
lround-c99-only.patch: Only use lround in C99 programs.
==== pixman patches ====
pixman-android-cpu-detect.patch: Add CPU detection support for Android, where we can't reliably access /proc/self/auxv.

Просмотреть файл

@ -483,7 +483,7 @@ _cairo_operator_bounded_by_either (cairo_operator_t op)
}
#if DISABLE_SOME_FLOATING_POINT
#if DISABLE_SOME_FLOATING_POINT || __STDC_VERSION__ < 199901L
/* This function is identical to the C99 function lround(), except that it
* performs arithmetic rounding (floor(d + .5) instead of away-from-zero rounding) and
* has a valid input range of (INT_MIN, INT_MAX] instead of

Просмотреть файл

@ -974,7 +974,7 @@ _cairo_round (double r)
return floor (r + .5);
}
#if DISABLE_SOME_FLOATING_POINT
#if DISABLE_SOME_FLOATING_POINT || __STDC_VERSION__ < 199901L
cairo_private int
_cairo_lround (double d) cairo_const;
#else

Просмотреть файл

@ -0,0 +1,46 @@
Only use lround in C99 programs.
diff --git a/gfx/cairo/cairo/src/cairo-misc.c b/gfx/cairo/cairo/src/cairo-misc.c
--- a/gfx/cairo/cairo/src/cairo-misc.c
+++ b/gfx/cairo/cairo/src/cairo-misc.c
@@ -478,17 +478,17 @@ _cairo_operator_bounded_by_either (cairo
case CAIRO_OPERATOR_IN:
case CAIRO_OPERATOR_DEST_IN:
case CAIRO_OPERATOR_DEST_ATOP:
return 0;
}
}
-#if DISABLE_SOME_FLOATING_POINT
+#if DISABLE_SOME_FLOATING_POINT || __STDC_VERSION__ < 199901L
/* This function is identical to the C99 function lround(), except that it
* performs arithmetic rounding (floor(d + .5) instead of away-from-zero rounding) and
* has a valid input range of (INT_MIN, INT_MAX] instead of
* [INT_MIN, INT_MAX]. It is much faster on both x86 and FPU-less systems
* than other commonly used methods for rounding (lround, round, rint, lrint
* or float (d + 0.5)).
*
* The reason why this function is much faster on x86 than other
diff --git a/gfx/cairo/cairo/src/cairoint.h b/gfx/cairo/cairo/src/cairoint.h
--- a/gfx/cairo/cairo/src/cairoint.h
+++ b/gfx/cairo/cairo/src/cairoint.h
@@ -969,17 +969,17 @@ _cairo_restrict_value (double value, dou
* away from 0. _cairo_round rounds halfway cases toward negative infinity.
* This matches the rounding behaviour of _cairo_lround. */
static inline double cairo_const
_cairo_round (double r)
{
return floor (r + .5);
}
-#if DISABLE_SOME_FLOATING_POINT
+#if DISABLE_SOME_FLOATING_POINT || __STDC_VERSION__ < 199901L
cairo_private int
_cairo_lround (double d) cairo_const;
#else
#define _cairo_lround lround
#endif
cairo_private uint16_t
_cairo_half_from_float (float f) cairo_const;

Просмотреть файл

@ -17171,7 +17171,6 @@ LoopProfile::profileOperation(JSContext* cx, JSOp op)
stackPush(StackValue(v1.isConst && v2.isConst));
} else if (op == JSOP_AND) {
bool b = !!js_ValueToBoolean(cx->regs().sp[-1]);
StackValue v = stackAt(-1);
if (b)
stackPop();
} else {

Просмотреть файл

@ -0,0 +1,31 @@
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
class="reftest-wait"
onload="setTimeAndSnapshot(29, true)">
<script xlink:href="smil-util.js" type="text/javascript"/>
<title>Test discrete keyTimes are scaled correctly (Bug 681645)</title>
<rect x="15" y="15" width="200" height="200" fill="blue">
<animate attributeName="fill" begin="0" dur="100s"
calcMode="discrete"
values="red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;blue;
red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;red"
keyTimes="0.00;0.01;0.02;0.03;0.04;0.05;0.06;0.07;0.08;0.09;
0.10;0.11;0.12;0.13;0.14;0.15;0.16;0.17;0.18;0.19;
0.20;0.21;0.22;0.23;0.24;0.25;0.26;0.27;0.28;0.29;
0.30;0.31;0.32;0.33;0.34;0.35;0.36;0.37;0.38;0.39;
0.40;0.41;0.42;0.43;0.44;0.45;0.46;0.47;0.48;0.49;
0.50;0.51;0.52;0.53;0.54;0.55;0.56;0.57;0.58;0.59;
0.60;0.61;0.62;0.63;0.64;0.65;0.66;0.67;0.68;0.69;
0.70;0.71;0.72;0.73;0.74;0.75;0.76;0.77;0.78;0.79;
0.80;0.81;0.82;0.83;0.84;0.85;0.86;0.87;0.88;0.89;
0.90;0.91;0.92;0.93;0.94;0.95;0.96;0.97;0.98;0.99"/>
</rect>
</svg>

После

Ширина:  |  Высота:  |  Размер: 1.8 KiB

Просмотреть файл

@ -0,0 +1,21 @@
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
class="reftest-wait"
onload="setTimeAndSnapshot(29, true)">
<script xlink:href="smil-util.js" type="text/javascript"/>
<title>Test discrete keyTimes are scaled correctly (Bug 681645)</title>
<rect x="15" y="15" width="200" height="200" fill="blue">
<animate attributeName="fill" begin="0" dur="100s"
calcMode="discrete"
values="red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;blue;
red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;red;
red;red;red;red;red;red;red;red;red;red"/>
</rect>
</svg>

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Просмотреть файл

@ -55,6 +55,8 @@ include event/reftest.list
# General tests
== anim-discrete-values-1.svg anim-standard-ref.svg
== anim-discrete-values-2.svg anim-standard-ref.svg
== anim-discrete-values-3.svg anim-standard-ref.svg
== anim-discrete-replace-sum-1.svg anim-standard-ref.svg
== anim-discrete-sum-none-1.svg anim-standard-ref.svg
== anim-discrete-sum-sum-1.svg anim-standard-ref.svg

Просмотреть файл

@ -76,6 +76,8 @@ nsresult nsDeflateConverter::Init()
case WRAP_GZIP:
window += 16;
break;
default:
break;
}
zerr = deflateInit2(&mZstream, mLevel, Z_DEFLATED, window, 8,

Просмотреть файл

@ -171,12 +171,11 @@ Java_org_mozilla_gecko_GeckoAppShell_onChangeNetworkLinkStatus(JNIEnv *jenv, jcl
}
NS_EXPORT void JNICALL
Java_org_mozilla_gecko_GeckoAppShell_reportJavaCrash(JNIEnv *, jclass, jstring stack)
Java_org_mozilla_gecko_GeckoAppShell_reportJavaCrash(JNIEnv *jenv, jclass, jstring stack)
{
#ifdef MOZ_CRASHREPORTER
nsJNIString javaStack(stack);
CrashReporter::AppendAppNotesToCrashReport(
NS_ConvertUTF16toUTF8(javaStack));
nsJNIString javaStack(stack, jenv);
CrashReporter::AppendAppNotesToCrashReport(NS_ConvertUTF16toUTF8(javaStack));
#endif
abort();
}