Closed
Bug 1343153
Opened 8 years ago
Closed 8 years ago
stylo: use servo css-parser for ParseEasing
Categories
(Core :: DOM: Animation, defect, P3)
Core
DOM: Animation
Tracking
()
RESOLVED
FIXED
mozilla55
Tracking | Status | |
---|---|---|
firefox55 | --- | fixed |
People
(Reporter: boris, Assigned: boris)
References
Details
Attachments
(5 files, 1 obsolete file)
59 bytes,
text/x-review-board-request
|
birtles
:
review+
emilio
:
review+
|
Details |
59 bytes,
text/x-review-board-request
|
emilio
:
review+
hiro
:
review+
|
Details |
59 bytes,
text/x-review-board-request
|
birtles
:
review+
|
Details |
41 bytes,
text/x-github-pull-request
|
Details | Review | |
41 bytes,
text/x-github-pull-request
|
Details | Review |
Currently, we parse css properties in keyframes by the Servo CSS parser; however, we still use nsCSSParser to parse our timing functions in TimingParams::ParseEasing() [1], so I think we should also use the Servo CSS parser for it.
[1] http://searchfox.org/mozilla-central/rev/4039fb4c5833706f6880763de216974e00ba096c/dom/animation/TimingParams.cpp#116-123
Assignee | ||
Updated•8 years ago
|
Assignee: nobody → boris.chiou
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 3•8 years ago
|
||
mozreview-review |
Comment on attachment 8848403 [details]
Bug 1343153 - Part 3: Replace pointer to const with immutable reference for nsTimingFunction.
https://reviewboard.mozilla.org/r/121302/#review123338
I am not sure this is worthwhile doing.
Instead I am guessing we can get the timing function from ComputedValues, no?
Comment 4•8 years ago
|
||
mozreview-review |
Comment on attachment 8848402 [details]
Bug 1343153 - Part 2: Use Servo css-parser for ParseEasing.
https://reviewboard.mozilla.org/r/121300/#review123344
I haven't reviewed this very thoroughly but it seems fine and we are just about to start a long weekend here and I don't work to block you. I'll leave Emilio to check the Servo/FFI parts.
::: dom/animation/TimingParams.cpp:135
(Diff revision 1)
> + ComputedTimingFunction computedTimingFunction;
> + computedTimingFunction.Init(timingFunction);
(One day we should just make a ctor for ComputedTimingFunction that does this--possibly with a default ctor that sets it to linear if we need one.)
Attachment #8848402 -
Flags: review?(bbirtles) → review+
Assignee | ||
Comment 5•8 years ago
|
||
mozreview-review-reply |
Comment on attachment 8848403 [details]
Bug 1343153 - Part 3: Replace pointer to const with immutable reference for nsTimingFunction.
https://reviewboard.mozilla.org/r/121302/#review123338
> I am not sure this is worthwhile doing.
Using either is ok to me, actually. I'd like to use nsTimingFuncitonBorrowedMut to hide the unsafe conversion in the first patch, so just want to make sure everywhere uses the same way for the function argument. I could drop this patch if you think this is not necessary.
> Instead I am guessing we can get the timing function from ComputedValues, no?
If it is already parsed and put into the ComputedValues, I think the answer is yes.
Assignee | ||
Comment 6•8 years ago
|
||
mozreview-review-reply |
Comment on attachment 8848402 [details]
Bug 1343153 - Part 2: Use Servo css-parser for ParseEasing.
https://reviewboard.mozilla.org/r/121300/#review123344
> (One day we should just make a ctor for ComputedTimingFunction that does this--possibly with a default ctor that sets it to linear if we need one.)
Thanks! Brian. Let me add a ctr for it.
Comment 7•8 years ago
|
||
(In reply to Hiroyuki Ikezoe (:hiro) from comment #3)
> Comment on attachment 8848403 [details]
> Bug 1343153 - Replace pointer to const with immutable reference for
> nsTimingFunction.
>
> https://reviewboard.mozilla.org/r/121302/#review123338
>
> I am not sure this is worthwhile doing.
> Instead I am guessing we can get the timing function from ComputedValues, no?
Ah, no. I forgot that this timing function is nth timing function in specified timing functions.
If we get the timing function from ComputedValues Servo_StyleSet_FillKeyframesForName needs to take an index.
Comment 8•8 years ago
|
||
mozreview-review |
Comment on attachment 8848403 [details]
Bug 1343153 - Part 3: Replace pointer to const with immutable reference for nsTimingFunction.
https://reviewboard.mozilla.org/r/121302/#review123354
Attachment #8848403 -
Flags: review?(hikezoe) → review+
Assignee | ||
Comment 9•8 years ago
|
||
(In reply to Hiroyuki Ikezoe (:hiro) from comment #7)
> Ah, no. I forgot that this timing function is nth timing function in
> specified timing functions.
> If we get the timing function from ComputedValues
> Servo_StyleSet_FillKeyframesForName needs to take an index.
Thanks for clarifying. Let's keep the current design. :)
Comment 10•8 years ago
|
||
mozreview-review |
Comment on attachment 8848402 [details]
Bug 1343153 - Part 2: Use Servo css-parser for ParseEasing.
https://reviewboard.mozilla.org/r/121300/#review123396
::: dom/animation/TimingParams.cpp:130
(Diff revision 1)
> + if (!Servo_ParseEasing(&aEasing, &baseString, &data, &timingFunction)) {
> + aRv.ThrowTypeError<dom::MSG_INVALID_EASING_ERROR>(aEasing);
> + return Nothing();
> + }
> +
> + // Return Nothing() if "linear" is passed in.
nit: I don't think this comment is really useful, given it's just translating literally the code below.
::: servo/ports/geckolib/glue.rs:787
(Diff revision 1)
> #[no_mangle]
> +pub extern "C" fn Servo_ParseEasing(easing: *const nsAString,
> + base: *const nsACString,
> + data: *const structs::GeckoParserExtraData,
> + output: nsTimingFunctionBorrowedMut)
> + -> bool
nit: align the return value to the rest of the arguments, and put the brace after it (I don't particularly love this style, but it's the usual one).
::: servo/ports/geckolib/glue.rs:794
(Diff revision 1)
> + use style::properties::longhands::transition_timing_function;
> +
> + make_context!((base, data) => (base_url, extra_data));
> + let reporter = StdoutErrorReporter;
> + let context = ParserContext::new_with_extra_data(Origin::Author, &base_url, &reporter, extra_data);
> + let easing = unsafe { (*easing).to_string() };
The copy here is unfortunate, but I think it's needed with the current setup. For simple stuff like this it should be easy to avoid though. It's fine for now.
::: servo/ports/geckolib/glue.rs:795
(Diff revision 1)
> +
> + make_context!((base, data) => (base_url, extra_data));
> + let reporter = StdoutErrorReporter;
> + let context = ParserContext::new_with_extra_data(Origin::Author, &base_url, &reporter, extra_data);
> + let easing = unsafe { (*easing).to_string() };
> + if let Ok(parsed) = transition_timing_function::single_value::parse(&context, &mut Parser::new(&easing)) {
nit: I think `match` is usually more legible than `if let ... { } else {}`:
```
match transition_timing_function::single_value::parse(&context, &mut Parser::new(&easing)) {
Ok(parsed_easing) => {
*output = parsed_easing.into();
true
}
Err(..) => false,
}
```
Or something like that. Not a strong preference though, feel free to keep the code as is if you prefer :).
Attachment #8848402 -
Flags: review?(emilio+bugs) → review+
Comment 11•8 years ago
|
||
mozreview-review |
Comment on attachment 8848403 [details]
Bug 1343153 - Part 3: Replace pointer to const with immutable reference for nsTimingFunction.
https://reviewboard.mozilla.org/r/121302/#review123402
Attachment #8848403 -
Flags: review?(emilio+bugs) → review+
Comment 12•8 years ago
|
||
mozreview-review-reply |
Comment on attachment 8848403 [details]
Bug 1343153 - Part 3: Replace pointer to const with immutable reference for nsTimingFunction.
https://reviewboard.mozilla.org/r/121302/#review123338
> Using either is ok to me, actually. I'd like to use nsTimingFuncitonBorrowedMut to hide the unsafe conversion in the first patch, so just want to make sure everywhere uses the same way for the function argument. I could drop this patch if you think this is not necessary.
It still feels a bit uneasy to me to add rust references into FFI functions, but Manish said it was ok, so yeah, I think this is ok, and worth doing since it makes the code a bit simpler.
Assignee | ||
Comment 13•8 years ago
|
||
mozreview-review-reply |
Comment on attachment 8848402 [details]
Bug 1343153 - Part 2: Use Servo css-parser for ParseEasing.
https://reviewboard.mozilla.org/r/121300/#review123396
> nit: I think `match` is usually more legible than `if let ... { } else {}`:
>
> ```
> match transition_timing_function::single_value::parse(&context, &mut Parser::new(&easing)) {
> Ok(parsed_easing) => {
> *output = parsed_easing.into();
> true
> }
> Err(..) => false,
> }
> ```
>
> Or something like that. Not a strong preference though, feel free to keep the code as is if you prefer :).
Thanks! I noticed that the above funciton also use `match`, so I will adopt your suggestion. :)
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Comment 17•8 years ago
|
||
mozreview-review |
Comment on attachment 8848540 [details]
Bug 1343153 - Part 1: Add some useful constructors for ComputedTimingFunction.
https://reviewboard.mozilla.org/r/121438/#review123468
::: gfx/layers/apz/src/AsyncPanZoomController.cpp:678
(Diff revision 1)
> - gVelocityCurveFunction = new ComputedTimingFunction();
> - gVelocityCurveFunction->Init(
> - nsTimingFunction(gfxPrefs::APZCurveFunctionX1(),
> + gVelocityCurveFunction = new ComputedTimingFunction(
> + gfxPrefs::APZCurveFunctionX1(), gfxPrefs::APZCurveFunctionY1(),
> + gfxPrefs::APZCurveFunctionX2(), gfxPrefs::APZCurveFunctionY2());
> - gfxPrefs::APZCurveFunctionY2(),
> - gfxPrefs::APZCurveFunctionX2(),
> - gfxPrefs::APZCurveFunctionY2()));
> ClearOnShutdown(&gVelocityCurveFunction);
Hi, kats, just want to know if the initial value of gVelocityCurveFunction is a typo? Thanks.
Comment 18•8 years ago
|
||
Yah... that looks like a typo. I would rather we fix that in a different bug that lands first, because it will probably need uplifting. And it might cause regressions in user-visible behaviour.
Assignee | ||
Comment 19•8 years ago
|
||
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #18)
> Yah... that looks like a typo. I would rather we fix that in a different bug
> that lands first, because it will probably need uplifting. And it might
> cause regressions in user-visible behaviour.
OK, let me file a bug for it. Thanks.
Assignee | ||
Comment 20•8 years ago
|
||
(In reply to Boris Chiou [:boris] from comment #19)
> (In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #18)
> > Yah... that looks like a typo. I would rather we fix that in a different bug
> > that lands first, because it will probably need uplifting. And it might
> > cause regressions in user-visible behaviour.
>
> OK, let me file a bug for it. Thanks.
Filed Bug 1348322.
Assignee | ||
Updated•8 years ago
|
Attachment #8848540 -
Flags: review?(bugmail)
Assignee | ||
Updated•8 years ago
|
Status: NEW → ASSIGNED
Comment 21•8 years ago
|
||
mozreview-review |
Comment on attachment 8848540 [details]
Bug 1343153 - Part 1: Add some useful constructors for ComputedTimingFunction.
https://reviewboard.mozilla.org/r/121438/#review123668
Thanks for doing this.
::: dom/animation/ComputedTimingFunction.h:26
(Diff revision 1)
> + ComputedTimingFunction(double x1, double y1, double x2, double y2)
> + : mType(nsTimingFunction::Type::CubicBezier)
> + , mTimingFunction(x1, y1, x2, y2) { }
> + ComputedTimingFunction(nsTimingFunction::Type aType, uint32_t aStepsOrFrames)
> + : mType(aType)
> + , mStepsOrFrames(aStepsOrFrames)
> + {
> + MOZ_ASSERT(!nsTimingFunction::IsSplineType(mType));
> + }
This bit feels a little odd to me. It's not obvious why passing four doubles should create a cubic-bezier timing function.
Instead we should probably use the named constructor idiom here.[1]
[1] https://isocpp.org/wiki/faq/ctors#named-ctor-idiom
Assignee | ||
Comment 22•8 years ago
|
||
mozreview-review-reply |
Comment on attachment 8848540 [details]
Bug 1343153 - Part 1: Add some useful constructors for ComputedTimingFunction.
https://reviewboard.mozilla.org/r/121438/#review123668
> This bit feels a little odd to me. It's not obvious why passing four doubles should create a cubic-bezier timing function.
>
> Instead we should probably use the named constructor idiom here.[1]
>
> [1] https://isocpp.org/wiki/faq/ctors#named-ctor-idiom
Thanks! I will try it.
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 26•8 years ago
|
||
mozreview-review |
Comment on attachment 8848540 [details]
Bug 1343153 - Part 1: Add some useful constructors for ComputedTimingFunction.
https://reviewboard.mozilla.org/r/121438/#review124224
::: dom/animation/ComputedTimingFunction.h:23
(Diff revision 2)
> + static ComputedTimingFunction
> + StepsOrFrames(nsTimingFunction::Type aType, uint32_t aStepsOrFrames)
> + {
> + return ComputedTimingFunction(aType, aStepsOrFrames);
> + }
Can we split Steps and Frames into separate ctors?
For example, this could just be something like:
static ComputedTimingFunction
Frames(uint32_t aFrames)
{
MOZ_ASSERT(aFrames >= 1, "The number of frames should be 2 or more");
return ComputedTimingFunction(nsTimingFunction::Type::Frames, aFrames);
}
static ComputedTimingFunction
Steps(nsTimingFunction::Type aType, uint32_t aSteps)
{
MOZ_ASSERT(aType == nsTimingFunction::Type::StepStart ||
aType == nsTimingFunction::Type::StepEnd,
"The type of timing function should be either step-start or "
"step-end");
MOZ_ASSERT(aSteps >= 0, "The number of steps should be 1 or more");
return ComputedTimingFunction(aType, aSteps);
}
Or perhaps even:
static ComputedTimingFunction
Frames(uint32_t aFrames)
{
MOZ_ASSERT(aFrames >= 1, "The number of frames should be 2 or more");
return ComputedTimingFunction(nsTimingFunction::Type::Frames, aFrames);
}
static ComputedTimingFunction
StepStart(uint32_t aSteps)
{
MOZ_ASSERT(aSteps >= 0, "The number of steps should be 1 or more");
return ComputedTimingFunction(nsTimingFunction::Type::StepStart, aFrames);
}
static ComputedTimingFunction
StepEnd(uint32_t aSteps)
{
MOZ_ASSERT(aSteps >= 0, "The number of steps should be 1 or more");
return ComputedTimingFunction(nsTimingFunction::Type::StepEnd, aFrames);
}
Which one you decide to use will probably depend on which is more convenient for the call sites (which I suspect is the first one).
::: dom/animation/ComputedTimingFunction.h:84
(Diff revision 2)
> private:
> - nsTimingFunction::Type mType;
> + ComputedTimingFunction(double x1, double y1, double x2, double y2)
> + : mType(nsTimingFunction::Type::CubicBezier)
> + , mTimingFunction(x1, y1, x2, y2) { }
> + ComputedTimingFunction(nsTimingFunction::Type aType, uint32_t aStepsOrFrames)
> + : mType(aType)
> + , mStepsOrFrames(aStepsOrFrames) { }
> +
> +private:
We probably don't need to repeat 'private:' here. Just once should be enough.
Assignee | ||
Comment 27•8 years ago
|
||
mozreview-review-reply |
Comment on attachment 8848540 [details]
Bug 1343153 - Part 1: Add some useful constructors for ComputedTimingFunction.
https://reviewboard.mozilla.org/r/121438/#review124224
> Can we split Steps and Frames into separate ctors?
>
> For example, this could just be something like:
>
> static ComputedTimingFunction
> Frames(uint32_t aFrames)
> {
> MOZ_ASSERT(aFrames >= 1, "The number of frames should be 2 or more");
> return ComputedTimingFunction(nsTimingFunction::Type::Frames, aFrames);
> }
> static ComputedTimingFunction
> Steps(nsTimingFunction::Type aType, uint32_t aSteps)
> {
> MOZ_ASSERT(aType == nsTimingFunction::Type::StepStart ||
> aType == nsTimingFunction::Type::StepEnd,
> "The type of timing function should be either step-start or "
> "step-end");
> MOZ_ASSERT(aSteps >= 0, "The number of steps should be 1 or more");
> return ComputedTimingFunction(aType, aSteps);
> }
>
> Or perhaps even:
>
> static ComputedTimingFunction
> Frames(uint32_t aFrames)
> {
> MOZ_ASSERT(aFrames >= 1, "The number of frames should be 2 or more");
> return ComputedTimingFunction(nsTimingFunction::Type::Frames, aFrames);
> }
> static ComputedTimingFunction
> StepStart(uint32_t aSteps)
> {
> MOZ_ASSERT(aSteps >= 0, "The number of steps should be 1 or more");
> return ComputedTimingFunction(nsTimingFunction::Type::StepStart, aFrames);
> }
> static ComputedTimingFunction
> StepEnd(uint32_t aSteps)
> {
> MOZ_ASSERT(aSteps >= 0, "The number of steps should be 1 or more");
> return ComputedTimingFunction(nsTimingFunction::Type::StepEnd, aFrames);
> }
>
> Which one you decide to use will probably depend on which is more convenient for the call sites (which I suspect is the first one).
Yes, I would like to use the first one. Thanks for the suggestion.
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 31•8 years ago
|
||
mozreview-review |
Comment on attachment 8848540 [details]
Bug 1343153 - Part 1: Add some useful constructors for ComputedTimingFunction.
https://reviewboard.mozilla.org/r/121438/#review124272
Attachment #8848540 -
Flags: review?(bbirtles) → review+
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Comment 35•8 years ago
|
||
Comment 36•8 years ago
|
||
Pushed by bchiou@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c5da825e8bd9
Part 1: Add some useful constructors for ComputedTimingFunction. r=birtles
https://hg.mozilla.org/integration/autoland/rev/9de875f31238
Part 2: Use Servo css-parser for ParseEasing. r=birtles,emilio
https://hg.mozilla.org/integration/autoland/rev/b2c7ea6392fc
Part 3: Replace pointer to const with immutable reference for nsTimingFunction. r=emilio,hiro
Comment 37•8 years ago
|
||
Backed out for timing out in dom/animation/test/crashtests/1278485-1.html, at least on Stylo:
https://hg.mozilla.org/integration/autoland/rev/3555ae48bb7f6d8454bd217d2550cf016b9783ed
https://hg.mozilla.org/integration/autoland/rev/09112a8f735cbe144faa7601f4380669eb90318a
https://hg.mozilla.org/integration/autoland/rev/ec14531812dad6de28c3b2397e9b9b4de64e576f
Push with failure: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=b2c7ea6392fc0581ae8998080ce39440b5e21c5d&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=85272615&repo=autoland
[task 2017-03-21T09:49:55.723696Z] 09:49:55 INFO - REFTEST TEST-START | file:///home/worker/workspace/build/tests/reftest/tests/dom/animation/test/crashtests/1278485-1.html
[task 2017-03-21T09:49:55.723785Z] 09:49:55 INFO - REFTEST TEST-LOAD | file:///home/worker/workspace/build/tests/reftest/tests/dom/animation/test/crashtests/1278485-1.html | 31 / 3177 (0%)
[task 2017-03-21T09:49:55.723926Z] 09:49:55 INFO - [Child 1103] WARNING: stylo: ServoStyleSets cannot respond to document state changes yet (only matters for chrome documents). See bug 1290285.: file /home/worker/workspace/build/src/layout/base/PresShell.cpp, line 4311
[task 2017-03-21T09:49:55.724029Z] 09:49:55 INFO - ++DOMWINDOW == 103 (0x7f8864790000) [pid = 1103] [serial = 103] [outer = 0x7f8871863000]
[task 2017-03-21T09:49:55.724711Z] 09:49:55 INFO - [Child 1103] WARNING: stylo: cannot get ServoStyleSheets from XBL bindings yet. See bug 1290276.: file /home/worker/workspace/build/src/layout/base/nsCSSFrameConstructor.cpp, line 2716
[task 2017-03-21T09:49:55.725424Z] 09:49:55 INFO - [Child 1103] WARNING: stylo: ServoStyleSets cannot handle @font-face rules yet. See bug 1290237.: file /home/worker/workspace/build/src/dom/base/nsDocument.cpp, line 12996
[task 2017-03-21T09:49:55.726074Z] 09:49:55 INFO - [Child 1103] WARNING: stylo: ServoStyleSets cannot respond to document state changes yet (only matters for chrome documents). See bug 1290285.: file /home/worker/workspace/build/src/layout/base/PresShell.cpp, line 4311
[task 2017-03-21T09:49:55.726771Z] 09:49:55 INFO - [Child 1103] WARNING: stylo: RequestRestyle to layer, but Servo-backed style system haven't supported compositor-driven animations yet: file /home/worker/workspace/build/src/dom/animation/EffectCompositor.cpp, line 287
[task 2017-03-21T09:49:55.727407Z] 09:49:55 INFO - [Child 1103] WARNING: stylo: RequestRestyle to layer, but Servo-backed style system haven't supported compositor-driven animations yet: file /home/worker/workspace/build/src/dom/animation/EffectCompositor.cpp, line 287
[task 2017-03-21T09:49:55.728022Z] 09:49:55 INFO - [Child 1103] WARNING: stylo: RequestRestyle to layer, but Servo-backed style system haven't supported compositor-driven animations yet: file /home/worker/workspace/build/src/dom/animation/EffectCompositor.cpp, line 287
[task 2017-03-21T09:49:55.728654Z] 09:49:55 INFO - [Child 1103] WARNING: stylo: RequestRestyle to layer, but Servo-backed style system haven't supported compositor-driven animations yet: file /home/worker/workspace/build/src/dom/animation/EffectCompositor.cpp, line 287
[task 2017-03-21T09:49:55.729781Z] 09:49:55 INFO - Assertion failure: IsFinite(progress) (Progress value should be finite), at /home/worker/workspace/build/src/dom/animation/AnimationEffectReadOnly.cpp:257
[task 2017-03-21T09:49:55.730394Z] 09:49:55 INFO - #01: mozilla::dom::AnimationEffectReadOnly::GetComputedTiming [mfbt/Maybe.h:100]
[task 2017-03-21T09:49:55.730967Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.731575Z] 09:49:55 INFO - #02: mozilla::dom::AnimationEffectReadOnly::IsCurrent [dom/animation/AnimationEffectReadOnly.cpp:55]
[task 2017-03-21T09:49:55.731726Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.732531Z] 09:49:55 INFO - #03: mozilla::dom::Animation::UpdateRelevance [dom/animation/Animation.h:272]
[task 2017-03-21T09:49:55.732700Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.733021Z] 09:49:55 INFO - #04: mozilla::dom::Animation::UpdateEffect [dom/animation/Animation.cpp:1296]
[task 2017-03-21T09:49:55.733236Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.733552Z] 09:49:55 INFO - #05: mozilla::dom::Animation::UpdateTiming [dom/animation/Animation.cpp:1231]
[task 2017-03-21T09:49:55.733763Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.734085Z] 09:49:55 INFO - #06: mozilla::dom::Animation::ResumeAt [dom/animation/Animation.cpp:1198]
[task 2017-03-21T09:49:55.734324Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.734632Z] 09:49:55 INFO - #07: mozilla::dom::Animation::Tick [dom/bindings/Nullable.h:86]
[task 2017-03-21T09:49:55.734870Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.735182Z] 09:49:55 INFO - #08: mozilla::dom::DocumentTimeline::WillRefresh [dom/animation/DocumentTimeline.cpp:178]
[task 2017-03-21T09:49:55.735392Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.735745Z] 09:49:55 INFO - #09: nsRefreshDriver::Tick [layout/base/nsRefreshDriver.cpp:1834]
[task 2017-03-21T09:49:55.735953Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.736372Z] 09:49:55 INFO - #10: mozilla::RefreshDriverTimer::TickRefreshDrivers [layout/base/nsRefreshDriver.cpp:301]
[task 2017-03-21T09:49:55.736555Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.736890Z] 09:49:55 INFO - #11: mozilla::RefreshDriverTimer::Tick [layout/base/nsRefreshDriver.cpp:323]
[task 2017-03-21T09:49:55.737092Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.737489Z] 09:49:55 INFO - #12: mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver [layout/base/nsRefreshDriver.cpp:627]
[task 2017-03-21T09:49:55.737670Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.737995Z] 09:49:55 INFO - #13: mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync [layout/base/nsRefreshDriver.cpp:529]
[task 2017-03-21T09:49:55.738204Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.738510Z] 09:49:55 INFO - #14: mozilla::layout::VsyncChild::RecvNotify [layout/ipc/VsyncChild.cpp:67]
[task 2017-03-21T09:49:55.738717Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.739039Z] 09:49:55 INFO - #15: mozilla::layout::PVsyncChild::OnMessageReceived [obj-firefox/ipc/ipdl/PVsyncChild.cpp:155]
[task 2017-03-21T09:49:55.739246Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.739555Z] 09:49:55 INFO - #16: mozilla::ipc::MessageChannel::DispatchAsyncMessage [ipc/glue/MessageChannel.h:537]
[task 2017-03-21T09:49:55.739774Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.740136Z] 09:49:55 INFO - #17: mozilla::ipc::MessageChannel::DispatchMessage [ipc/glue/MessageChannel.cpp:1809]
[task 2017-03-21T09:49:55.740342Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.740650Z] 09:49:55 INFO - #18: mozilla::ipc::MessageChannel::RunMessage [ipc/glue/MessageChannel.cpp:1681]
[task 2017-03-21T09:49:55.740853Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.741160Z] 09:49:55 INFO - #19: mozilla::ipc::MessageChannel::MessageTask::Run [ipc/glue/MessageChannel.cpp:1714]
[task 2017-03-21T09:49:55.741362Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.741665Z] 09:49:55 INFO - #20: nsThread::ProcessNextEvent [mfbt/Maybe.h:445]
[task 2017-03-21T09:49:55.741874Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.742189Z] 09:49:55 INFO - #21: NS_ProcessNextEvent [xpcom/threads/nsThreadUtils.cpp:389]
[task 2017-03-21T09:49:55.742397Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.742694Z] 09:49:55 INFO - #22: mozilla::ipc::MessagePump::Run [ipc/glue/MessagePump.cpp:97]
[task 2017-03-21T09:49:55.742899Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.743203Z] 09:49:55 INFO - #23: MessageLoop::RunInternal [ipc/chromium/src/base/message_loop.cc:239]
[task 2017-03-21T09:49:55.743404Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.743709Z] 09:49:55 INFO - #24: MessageLoop::Run [ipc/chromium/src/base/message_loop.cc:502]
[task 2017-03-21T09:49:55.743929Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.744230Z] 09:49:55 INFO - #25: nsBaseAppShell::Run [widget/nsBaseAppShell.cpp:158]
[task 2017-03-21T09:49:55.744442Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.744744Z] 09:49:55 INFO - #26: XRE_RunAppShell [toolkit/xre/nsEmbedFunctions.cpp:854]
[task 2017-03-21T09:49:55.745842Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.746530Z] 09:49:55 INFO - #27: mozilla::ipc::MessagePumpForChildProcess::Run [ipc/glue/MessagePump.cpp:269]
[task 2017-03-21T09:49:55.747081Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.747772Z] 09:49:55 INFO - #28: MessageLoop::RunInternal [ipc/chromium/src/base/message_loop.cc:239]
[task 2017-03-21T09:49:55.748281Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.748809Z] 09:49:55 INFO - #29: MessageLoop::Run [ipc/chromium/src/base/message_loop.cc:502]
[task 2017-03-21T09:49:55.748987Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.749681Z] 09:49:55 INFO - #30: XRE_InitChildProcess [toolkit/xre/nsEmbedFunctions.cpp:690]
[task 2017-03-21T09:49:55.750212Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.751037Z] 09:49:55 INFO - #31: content_process_main [ipc/contentproc/plugin-container.cpp:66]
[task 2017-03-21T09:49:55.751571Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.752196Z] 09:49:55 INFO - #32: main [browser/app/nsBrowserApp.cpp:289]
[task 2017-03-21T09:49:55.752854Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.752965Z] 09:49:55 INFO - #33: libc.so.6 + 0x20830
[task 2017-03-21T09:49:55.753618Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.753741Z] 09:49:55 INFO - #34: _start
[task 2017-03-21T09:49:55.754352Z] 09:49:55 INFO -
[task 2017-03-21T09:49:55.755047Z] 09:49:55 INFO - [Parent 1010] WARNING: pipe error (62): Connection reset by peer: file /home/worker/workspace/build/src/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 346
[task 2017-03-21T09:49:55.755704Z] 09:49:55 INFO - ###!!! [Parent][MessageChannel] Error: (msgtype=0x2C0080,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv
[task 2017-03-21T09:49:55.756363Z] 09:49:55 INFO - JavaScript error: resource://app/modules/ContentCrashHandlers.jsm, line 137: TypeError: WeakMap key must be an object, got undefined
[task 2017-03-21T09:49:55.757070Z] 09:49:55 INFO - --DOCSHELL 0x7fe6b8ddd000 == 5 [pid = 1010] [id = {ed44bb5a-ca5a-48d6-ae7b-4d052c2d5dc1}]
[task 2017-03-21T09:49:55.757682Z] 09:49:55 INFO - --DOCSHELL 0x7fe6b8de8000 == 4 [pid = 1010] [id = {3ece2ba7-9be7-4960-9328-d6e791f304ab}]
[task 2017-03-21T09:49:55.757781Z] 09:49:55 INFO - --DOCSHELL 0x7fe6b8d84800 == 3 [pid = 1010] [id = {a8f62aaa-1581-436a-bd3b-ff29c02e042e}]
[task 2017-03-21T09:49:55.759360Z] 09:49:55 INFO - --DOMWINDOW == 22 (0x7fe6c6e22800) [pid = 1010] [serial = 6] [outer = (nil)] [url = about:blank]
[task 2017-03-21T09:49:55.759488Z] 09:49:55 INFO - --DOMWINDOW == 21 (0x7fe6c6e24800) [pid = 1010] [serial = 7] [outer = (nil)] [url = about:blank]
[task 2017-03-21T09:49:55.760095Z] 09:49:55 INFO - --DOMWINDOW == 20 (0x7fe6b8ddb000) [pid = 1010] [serial = 18] [outer = (nil)] [url = about:blank]
[task 2017-03-21T09:49:55.760736Z] 09:49:55 INFO - --DOMWINDOW == 19 (0x7fe6b8dde000) [pid = 1010] [serial = 19] [outer = (nil)] [url = about:blank]
[task 2017-03-21T09:49:55.760839Z] 09:49:55 INFO - --DOMWINDOW == 18 (0x7fe6b8dea000) [pid = 1010] [serial = 20] [outer = (nil)] [url = about:blank]
[task 2017-03-21T09:49:55.762020Z] 09:49:55 INFO - --DOMWINDOW == 17 (0x7fe6c60ca800) [pid = 1010] [serial = 8] [outer = (nil)] [url = about:blank]
[task 2017-03-21T09:49:55.762167Z] 09:49:55 INFO - --DOMWINDOW == 16 (0x7fe6b8dcb800) [pid = 1010] [serial = 16] [outer = (nil)] [url = chrome://browser/content/browser.xul]
[task 2017-03-21T09:49:55.762786Z] 09:49:55 INFO - --DOMWINDOW == 15 (0x7fe6c59df800) [pid = 1010] [serial = 10] [outer = (nil)] [url = about:blank]
[task 2017-03-21T09:49:55.763398Z] 09:49:55 INFO - --DOMWINDOW == 14 (0x7fe6c59e3800) [pid = 1010] [serial = 11] [outer = (nil)] [url = about:blank]
[task 2017-03-21T09:49:55.763499Z] 09:49:55 INFO - --DOMWINDOW == 13 (0x7fe6b9f4c800) [pid = 1010] [serial = 21] [outer = (nil)] [url = about:blank]
[task 2017-03-21T09:49:55.764131Z] 09:49:55 INFO - --DOMWINDOW == 12 (0x7fe6c5c10800) [pid = 1010] [serial = 9] [outer = (nil)] [url = about:blank]
[task 2017-03-21T09:49:55.764760Z] 09:49:55 INFO - --DOMWINDOW == 11 (0x7fe6d407d800) [pid = 1010] [serial = 2] [outer = (nil)] [url = about:blank]
[task 2017-03-21T09:49:55.764860Z] 09:49:55 INFO - --DOMWINDOW == 10 (0x7fe6bbc6e800) [pid = 1010] [serial = 22] [outer = (nil)] [url = about:blank]
[task 2017-03-21T09:49:55.765423Z] 09:49:55 INFO - --DOMWINDOW == 9 (0x7fe6bbc77000) [pid = 1010] [serial = 23] [outer = (nil)] [url = about:blank]
[task 2017-03-21T09:49:55.765485Z] 09:49:55 INFO - --DOMWINDOW == 8 (0x7fe6b8dcc800) [pid = 1010] [serial = 17] [outer = (nil)] [url = about:blank]
[task 2017-03-21T09:55:25.685242Z] 09:55:25 ERROR - REFTEST ERROR | file:///home/worker/workspace/build/tests/reftest/tests/dom/animation/test/crashtests/1278485-1.html | application timed out after 330 seconds with no output
[task 2017-03-21T09:55:25.687332Z] 09:55:25 ERROR - REFTEST ERROR | Force-terminating active process(es).
[task 2017-03-21T09:55:25.688658Z] 09:55:25 INFO - REFTEST TEST-INFO | started process screentopng
[task 2017-03-21T09:55:26.105748Z] 09:55:26 INFO - REFTEST TEST-INFO | screentopng: exit 0
[task 2017-03-21T09:55:26.230648Z] 09:55:26 INFO - TEST-UNEXPECTED-FAIL | file:///home/worker/workspace/build/tests/reftest/tests/dom/animation/test/crashtests/1278485-1.html | application terminated with exit code 6
[task 2017-03-21T09:55:26.233538Z] 09:55:26 INFO - REFTEST INFO | Copy/paste: /usr/local/bin/linux64-minidump_stackwalk /tmp/tmpxYVSNa.mozrunner/minidumps/158766f1-3040-c596-4bce-6a41a6713a10.dmp /home/worker/workspace/build/symbols
[task 2017-03-21T09:55:33.648079Z] 09:55:33 INFO - REFTEST INFO | Saved minidump as /home/worker/workspace/build/blobber_upload_dir/158766f1-3040-c596-4bce-6a41a6713a10.dmp
[task 2017-03-21T09:55:33.650368Z] 09:55:33 INFO - REFTEST INFO | Saved app info as /home/worker/workspace/build/blobber_upload_dir/158766f1-3040-c596-4bce-6a41a6713a10.extra
[task 2017-03-21T09:55:34.056026Z] 09:55:34 INFO - REFTEST PROCESS-CRASH | file:///home/worker/workspace/build/tests/reftest/tests/dom/animation/test/crashtests/1278485-1.html | application crashed [@ libc-2.23.so + 0xfab5d]
[task 2017-03-21T09:55:34.057658Z] 09:55:34 INFO - Crash dump filename: /tmp/tmpxYVSNa.mozrunner/minidumps/158766f1-3040-c596-4bce-6a41a6713a10.dmp
[task 2017-03-21T09:55:34.058752Z] 09:55:34 INFO - Operating system: Linux
[task 2017-03-21T09:55:34.059786Z] 09:55:34 INFO - 0.0.0 Linux 3.13.0-107-generic #154-Ubuntu SMP Tue Dec 20 09:57:27 UTC 2016 x86_64
[task 2017-03-21T09:55:34.060782Z] 09:55:34 INFO - CPU: amd64
[task 2017-03-21T09:55:34.061796Z] 09:55:34 INFO - family 6 model 62 stepping 4
[task 2017-03-21T09:55:34.062791Z] 09:55:34 INFO - 2 CPUs
[task 2017-03-21T09:55:34.063763Z] 09:55:34 INFO -
[task 2017-03-21T09:55:34.064757Z] 09:55:34 INFO - GPU: UNKNOWN
[task 2017-03-21T09:55:34.065735Z] 09:55:34 INFO -
[task 2017-03-21T09:55:34.067227Z] 09:55:34 INFO - Crash reason: SIGABRT
[task 2017-03-21T09:55:34.068613Z] 09:55:34 INFO - Crash address: 0x3e8000003dd
[task 2017-03-21T09:55:34.069958Z] 09:55:34 INFO - Process uptime: not available
[task 2017-03-21T09:55:34.071324Z] 09:55:34 INFO -
[task 2017-03-21T09:55:34.072642Z] 09:55:34 INFO - Thread 0 (crashed)
[task 2017-03-21T09:55:34.073983Z] 09:55:34 INFO - 0 libc-2.23.so + 0xfab5d
[task 2017-03-21T09:55:34.075363Z] 09:55:34 INFO - rax = 0xfffffffffffffffc rdx = 0x00000000ffffffff
[task 2017-03-21T09:55:34.076638Z] 09:55:34 INFO - rcx = 0xffffffffffffffff rbx = 0x00007fe6f54d1a00
[task 2017-03-21T09:55:34.077848Z] 09:55:34 INFO - rsi = 0x0000000000000005 rdi = 0x00007fe6d0024310
[task 2017-03-21T09:55:34.078839Z] 09:55:34 INFO - rbp = 0x00007ffe0a23a5f0 rsp = 0x00007ffe0a23a5d0
[task 2017-03-21T09:55:34.079706Z] 09:55:34 INFO - r8 = 0x0000000000000005 r9 = 0x0000000000000001
[task 2017-03-21T09:55:34.080601Z] 09:55:34 INFO - r10 = 0x00007fe6dc473880 r11 = 0x0000000000000293
[task 2017-03-21T09:55:34.081585Z] 09:55:34 INFO - r12 = 0x00007fe6d0024310 r13 = 0x00000000ffffffff
[task 2017-03-21T09:55:34.082499Z] 09:55:34 INFO - r14 = 0x00007fe6e7114c3d r15 = 0x0000000000000005
[task 2017-03-21T09:55:34.083423Z] 09:55:34 INFO - rip = 0x00007fe6f57efb5d
[task 2017-03-21T09:55:34.084336Z] 09:55:34 INFO - Found by: given as instruction pointer in context
[task 2017-03-21T09:55:34.085254Z] 09:55:34 INFO - 1 libxul.so!PollWrapper [nsAppShell.cpp:b2c7ea6392fc : 42 + 0x10]
[task 2017-03-21T09:55:34.086532Z] 09:55:34 INFO - rbp = 0x00007ffe0a23a5f0 rsp = 0x00007ffe0a23a5e0
[task 2017-03-21T09:55:34.087528Z] 09:55:34 INFO - rip = 0x00007fe6e7114c69
[task 2017-03-21T09:55:34.088740Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.089736Z] 09:55:34 INFO - 2 libglib-2.0.so.0.4800.2 + 0x4a38c
[task 2017-03-21T09:55:34.091019Z] 09:55:34 INFO - rbp = 0x0000000000000005 rsp = 0x00007ffe0a23a600
[task 2017-03-21T09:55:34.092078Z] 09:55:34 INFO - rip = 0x00007fe6f05bc38c
[task 2017-03-21T09:55:34.093005Z] 09:55:34 INFO - Found by: call frame info
[task 2017-03-21T09:55:34.094334Z] 09:55:34 INFO - 3 libglib-2.0.so.0.4800.2 + 0x4a49c
[task 2017-03-21T09:55:34.095646Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a660 rip = 0x00007fe6f05bc49c
[task 2017-03-21T09:55:34.096628Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.097848Z] 09:55:34 INFO - 4 libxul.so!nsAppShell::ProcessNextNativeEvent [nsAppShell.cpp:b2c7ea6392fc : 270 + 0x5]
[task 2017-03-21T09:55:34.099191Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a680 rip = 0x00007fe6e7114caf
[task 2017-03-21T09:55:34.100474Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.101461Z] 09:55:34 INFO - 5 libxul.so!nsBaseAppShell::DoProcessNextNativeEvent [nsBaseAppShell.cpp:b2c7ea6392fc : 138 + 0x10]
[task 2017-03-21T09:55:34.102443Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a690 rip = 0x00007fe6e70e9eb1
[task 2017-03-21T09:55:34.103350Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.104580Z] 09:55:34 INFO - 6 libxul.so!nsBaseAppShell::OnProcessNextEvent [nsBaseAppShell.cpp:b2c7ea6392fc : 289 + 0x8]
[task 2017-03-21T09:55:34.105429Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a6d0 rip = 0x00007fe6e70ed4a8
[task 2017-03-21T09:55:34.106556Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.107656Z] 09:55:34 INFO - 7 libxul.so!nsThread::ProcessNextEvent [nsThread.cpp:b2c7ea6392fc : 1225 + 0xf]
[task 2017-03-21T09:55:34.108482Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a720 rip = 0x00007fe6e5746660
[task 2017-03-21T09:55:34.109302Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.110442Z] 09:55:34 INFO - 8 libnspr4.so!PR_Unlock [ptsynch.c:b2c7ea6392fc : 203 + 0x2]
[task 2017-03-21T09:55:34.111722Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a760 rip = 0x00007fe6f4fd3601
[task 2017-03-21T09:55:34.112847Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.114094Z] 09:55:34 INFO - 9 libxul.so!_fini + 0x2c339
[task 2017-03-21T09:55:34.114914Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a7a8 rip = 0x00007fe6e8f37d01
[task 2017-03-21T09:55:34.115728Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.116815Z] 09:55:34 INFO - 10 libxul.so!nsTimerImpl::Init [nsTimerImpl.cpp:b2c7ea6392fc : 307 + 0xb]
[task 2017-03-21T09:55:34.117934Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a7c0 rip = 0x00007fe6e5747501
[task 2017-03-21T09:55:34.119047Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.120159Z] 09:55:34 INFO - 11 libxul.so!NS_ProcessNextEvent [nsThreadUtils.cpp:b2c7ea6392fc : 389 + 0x11]
[task 2017-03-21T09:55:34.120992Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a800 rip = 0x00007fe6e5748a20
[task 2017-03-21T09:55:34.122099Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.122944Z] 09:55:34 INFO - 12 libxul.so!MessageLoop::DoIdleWork [message_loop.cc:b2c7ea6392fc : 472 + 0x5]
[task 2017-03-21T09:55:34.123768Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a810 rip = 0x00007fe6e5ab6e85
[task 2017-03-21T09:55:34.124917Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.126040Z] 09:55:34 INFO - 13 libxul.so!mozilla::ipc::MessagePump::Run [MessagePump.cpp:b2c7ea6392fc : 124 + 0xd]
[task 2017-03-21T09:55:34.127192Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a830 rip = 0x00007fe6e5ae456c
[task 2017-03-21T09:55:34.128296Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.129107Z] 09:55:34 INFO - 14 libxul.so!_fini + 0x19ec2a8
[task 2017-03-21T09:55:34.129936Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a850 rip = 0x00007fe6ea8f7c70
[task 2017-03-21T09:55:34.131016Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.132088Z] 09:55:34 INFO - 15 libxul.so!_fini + 0x182908
[task 2017-03-21T09:55:34.133177Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a858 rip = 0x00007fe6e908e2d0
[task 2017-03-21T09:55:34.134295Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.135382Z] 09:55:34 INFO - 16 libxul.so!MessageLoop::RunInternal [message_loop.cc:b2c7ea6392fc : 238 + 0x17]
[task 2017-03-21T09:55:34.136216Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a8a0 rip = 0x00007fe6e5ab4a4f
[task 2017-03-21T09:55:34.136986Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.138011Z] 09:55:34 INFO - 17 libnspr4.so!PR_GetThreadPrivate [prtpd.c:b2c7ea6392fc : 204 + 0x5]
[task 2017-03-21T09:55:34.139043Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a8c0 rip = 0x00007fe6f4fd6ced
[task 2017-03-21T09:55:34.140105Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.141091Z] 09:55:34 INFO - 18 libxul.so!MessageLoop::Run [message_loop.cc:b2c7ea6392fc : 231 + 0x8]
[task 2017-03-21T09:55:34.142072Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a8e0 rip = 0x00007fe6e5ab4a76
[task 2017-03-21T09:55:34.143078Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.144061Z] 09:55:34 INFO - 19 libxul.so!nsBaseAppShell::Run [nsBaseAppShell.cpp:b2c7ea6392fc : 156 + 0xd]
[task 2017-03-21T09:55:34.145044Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a920 rip = 0x00007fe6e70e8957
[task 2017-03-21T09:55:34.146026Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.147046Z] 09:55:34 INFO - 20 libxul.so!nsAppStartup::Run [nsAppStartup.cpp:b2c7ea6392fc : 283 + 0x6]
[task 2017-03-21T09:55:34.147794Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a940 rip = 0x00007fe6e7e3cfb7
[task 2017-03-21T09:55:34.148830Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.149842Z] 09:55:34 INFO - 21 libxul.so!XREMain::XRE_mainRun [nsAppRunner.cpp:b2c7ea6392fc : 4492 + 0x11]
[task 2017-03-21T09:55:34.150567Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a960 rip = 0x00007fe6e7eb8af2
[task 2017-03-21T09:55:34.151545Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.152242Z] 09:55:34 INFO - 22 libnspr4.so!PR_GetCurrentThread [ptthread.c:b2c7ea6392fc : 655 + 0xb]
[task 2017-03-21T09:55:34.153231Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a9d0 rip = 0x00007fe6f4fd5125
[task 2017-03-21T09:55:34.154219Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.155190Z] 09:55:34 INFO - 23 libxul.so!_fini + 0x406c9b
[task 2017-03-21T09:55:34.156177Z] 09:55:34 INFO - rsp = 0x00007ffe0a23a9f8 rip = 0x00007fe6e9312663
[task 2017-03-21T09:55:34.157145Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.158149Z] 09:55:34 INFO - 24 libxul.so!NS_LogRelease [nsTraceRefcnt.cpp:b2c7ea6392fc : 1069 + 0x5]
[task 2017-03-21T09:55:34.159146Z] 09:55:34 INFO - rsp = 0x00007ffe0a23aa20 rip = 0x00007fe6e56f201e
[task 2017-03-21T09:55:34.160149Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.161119Z] 09:55:34 INFO - 25 libxul.so!_fini + 0x28ca8
[task 2017-03-21T09:55:34.162132Z] 09:55:34 INFO - rsp = 0x00007ffe0a23aa38 rip = 0x00007fe6e8f34670
[task 2017-03-21T09:55:34.163101Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.164095Z] 09:55:34 INFO - 26 libxul.so!nsComponentManagerImpl::Release [nsComponentManager.cpp:b2c7ea6392fc : 883 + 0x8]
[task 2017-03-21T09:55:34.165092Z] 09:55:34 INFO - rsp = 0x00007ffe0a23aa80 rip = 0x00007fe6e572f49a
[task 2017-03-21T09:55:34.166073Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.167075Z] 09:55:34 INFO - 27 libxul.so!ScopedXPCOMStartup::Initialize [nsCOMPtr.h:b2c7ea6392fc : 404 + 0x6]
[task 2017-03-21T09:55:34.168057Z] 09:55:34 INFO - rsp = 0x00007ffe0a23aaa0 rip = 0x00007fe6e7eb1649
[task 2017-03-21T09:55:34.169041Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.170043Z] 09:55:34 INFO - 28 libxul.so!XREMain::XRE_main [nsAppRunner.cpp:b2c7ea6392fc : 4670 + 0x5]
[task 2017-03-21T09:55:34.171037Z] 09:55:34 INFO - rsp = 0x00007ffe0a23aae0 rip = 0x00007fe6e7eb924b
[task 2017-03-21T09:55:34.172001Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.172973Z] 09:55:34 INFO - 29 libpthread-2.23.so + 0x2182c0
[task 2017-03-21T09:55:34.173949Z] 09:55:34 INFO - rsp = 0x00007ffe0a23aae8 rip = 0x00007fe6f69832c0
[task 2017-03-21T09:55:34.174995Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.175984Z] 09:55:34 INFO - 30 libxul.so!nsLocalFile::AppendRelativeNativePath [nsLocalFileUnix.cpp:b2c7ea6392fc : 542 + 0xd]
[task 2017-03-21T09:55:34.176961Z] 09:55:34 INFO - rsp = 0x00007ffe0a23ab08 rip = 0x00007fe6e570aa1a
[task 2017-03-21T09:55:34.177925Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.178944Z] 09:55:34 INFO - 31 firefox!_fini + 0xa8
[task 2017-03-21T09:55:34.179918Z] 09:55:34 INFO - rsp = 0x00007ffe0a23ab48 rip = 0x000000000041dd00
[task 2017-03-21T09:55:34.180909Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.181893Z] 09:55:34 INFO - 32 libxul.so!XRE_main [nsAppRunner.cpp:b2c7ea6392fc : 4761 + 0x5]
[task 2017-03-21T09:55:34.182930Z] 09:55:34 INFO - rsp = 0x00007ffe0a23ab90 rip = 0x00007fe6e7eb950c
[task 2017-03-21T09:55:34.183913Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.184897Z] 09:55:34 INFO - 33 libxul.so!_fini + 0x1cb8f48
[task 2017-03-21T09:55:34.185869Z] 09:55:34 INFO - rsp = 0x00007ffe0a23ac28 rip = 0x00007fe6eabc4910
[task 2017-03-21T09:55:34.186574Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.187542Z] 09:55:34 INFO - 34 libxul.so!_fini + 0x1cb8f90
[task 2017-03-21T09:55:34.188524Z] 09:55:34 INFO - rsp = 0x00007ffe0a23ac30 rip = 0x00007fe6eabc4958
[task 2017-03-21T09:55:34.189511Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.190511Z] 09:55:34 INFO - 35 libxul.so!_fini + 0x1f3ffe8
[task 2017-03-21T09:55:34.191489Z] 09:55:34 INFO - rsp = 0x00007ffe0a23ac70 rip = 0x00007fe6eae4b9b0
[task 2017-03-21T09:55:34.192457Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.193156Z] 09:55:34 INFO - 36 libxul.so!_fini + 0x1f3ffe8
[task 2017-03-21T09:55:34.194146Z] 09:55:34 INFO - rsp = 0x00007ffe0a23ac78 rip = 0x00007fe6eae4b9b0
[task 2017-03-21T09:55:34.195188Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.196178Z] 09:55:34 INFO - 37 firefox!strndup [mozmemory_wrap.c:b2c7ea6392fc : 77 + 0xe]
[task 2017-03-21T09:55:34.197195Z] 09:55:34 INFO - rsp = 0x00007ffe0a23ad30 rip = 0x0000000000415b1e
[task 2017-03-21T09:55:34.197875Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.198852Z] 09:55:34 INFO - 38 libc-2.23.so + 0x39786
[task 2017-03-21T09:55:34.199852Z] 09:55:34 INFO - rsp = 0x00007ffe0a23ad40 rip = 0x00007fe6f572e786
[task 2017-03-21T09:55:34.200850Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.201841Z] 09:55:34 INFO - 39 firefox!do_main [nsBrowserApp.cpp:b2c7ea6392fc : 236 + 0x22]
[task 2017-03-21T09:55:34.202838Z] 09:55:34 INFO - rsp = 0x00007ffe0a23ad80 rip = 0x0000000000406466
[task 2017-03-21T09:55:34.203807Z] 09:55:34 INFO - Found by: stack scanning
[task 2017-03-21T09:55:34.204768Z] 09:55:34 INFO - 40 firefox!_fini + 0x19f
[task 2017-03-21T09:55:34.205730Z] 09:55:34 INFO - rsp = 0x00007ffe0a23ad90 rip = 0x000000000041ddf7
[task 2017-03-21T09:55:34.206717Z] 09:55:34 INFO - Found by: stack scanning
Flags: needinfo?(boris.chiou)
Assignee | ||
Comment 38•8 years ago
|
||
(In reply to Sebastian Hengst [:aryx][:archaeopteryx] (needinfo on intermittent or backout) from comment #37)
> Backed out for timing out in dom/animation/test/crashtests/1278485-1.html,
> at least on Stylo:
My try looks good (today), so I will work on this after patches in autoland are merged into m-c.
Flags: needinfo?(boris.chiou)
Comment hidden (obsolete) |
Comment hidden (typo) |
Assignee | ||
Comment 41•8 years ago
|
||
OK, find the root cause: css-parser gives us different results for a large number.
document.body.animate([],
{ duration: 6,
easing: "cubic-bezier(0, -1e+39, 0, 0)" });
// nsTimingFunction by servo: (0.000000, -inf) (0.000000, 0.000000)
// nsTimingFunction by gecko: (0.000000, -340282346638528859811704183484516925440.000000) (0.000000, 0.000000)
document.body.animate([],
{ duration: 6,
easing: "cubic-bezier(0, 1e+39, 0, 0)" });
// nsTimingFunction by servo: (0.000000, inf) (0.000000, 0.000000)
// nsTimingFunction by gecko: (0.000000, 340282346638528859811704183484516925440.000000) (0.000000, 0.000000)
document.body.animate([],
{ duration: 6,
easing: "cubic-bezier(0, 0, 0, -1e+39)" });
// nsTimingFunction by servo: (0.000000, 0.000000) (0.000000, -inf)
// nsTimingFunction by gecko: (0.000000, 0.000000) (0.000000, -340282346638528859811704183484516925440.000000)
document.body.animate([],
{ duration: 6,
easing: "cubic-bezier(0, 0, 0, 1e+39)" });
// nsTimingFunction by servo: (0.000000, 0.000000) (0.000000, inf)
// nsTimingFunction by gecko: (0.000000, 0.000000) (0.000000, 340282346638528859811704183484516925440.000000)
Servo parser returns inf values, but Gecko parser returns float max/min. A possible solution is: make sure we handle "inf" properly in ComputedTimingFunction.
Comment 42•8 years ago
|
||
I think it's similar to bug 1336769.
Comment 43•8 years ago
|
||
We could also ensure that the CSS parser doesn't return infinite values instead, I remember to have discussed with Simon about this before.
Assignee | ||
Comment 44•8 years ago
|
||
(In reply to Emilio Cobos Álvarez [:emilio] from comment #43)
> We could also ensure that the CSS parser doesn't return infinite values
> instead, I remember to have discussed with Simon about this before.
OK, I am trying to make the parser of transition-timing-function converts the inf values into f32 max.
Assignee | ||
Comment 45•8 years ago
|
||
(In reply to Hiroyuki Ikezoe (:hiro) from comment #42)
> I think it's similar to bug 1336769.
Yes. Agree. Maybe I can take a look at that bug. Thanks for the reminder.
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 50•8 years ago
|
||
mozreview-review |
Comment on attachment 8849524 [details]
Bug 1343153 - [Servo] Make specific::parse_number() return finite f32.
https://reviewboard.mozilla.org/r/122320/#review124406
::: servo/components/style/properties/longhand/box.mako.rs:601
(Diff revision 1)
> "cubic-bezier" => {
> + use std::f32;
> +
> let (mut p1x, mut p1y, mut p2x, mut p2y) = (0.0, 0.0, 0.0, 0.0);
> try!(input.parse_nested_block(|input| {
> p1x = try!(specified::parse_number(input));
What about `p1x` and `p2x`? can't they be infinite too?
Let's add this logic to `specified::parse_number` instead, so we get it for free pretty much everywhere.
::: servo/components/style/properties/longhand/box.mako.rs:615
(Diff revision 1)
> if p1x < 0.0 || p1x > 1.0 || p2x < 0.0 || p2x > 1.0 {
> return Err(())
> }
>
> + if p1y.is_infinite() {
> + p1y = if p1y.is_sign_positive() { f32::MAX } else { f32::MIN };
Let's add this logic to `specified::parse_number` instead, so we get it for free pretty much everywhere.
Attachment #8849524 -
Flags: review?(emilio+bugs)
Comment 51•8 years ago
|
||
mozreview-review-reply |
Comment on attachment 8849524 [details]
Bug 1343153 - [Servo] Make specific::parse_number() return finite f32.
https://reviewboard.mozilla.org/r/122320/#review124406
> What about `p1x` and `p2x`? can't they be infinite too?
>
> Let's add this logic to `specified::parse_number` instead, so we get it for free pretty much everywhere.
This comment should've been deleted (oh, mozreview). I saw that we check for the range below.
Comment hidden (mozreview-request) |
Comment 53•8 years ago
|
||
mozreview-review |
Comment on attachment 8849524 [details]
Bug 1343153 - [Servo] Make specific::parse_number() return finite f32.
https://reviewboard.mozilla.org/r/122320/#review124454
Attachment #8849524 -
Flags: review?(emilio+bugs) → review+
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Updated•8 years ago
|
Attachment #8849524 -
Attachment is obsolete: true
Assignee | ||
Comment 57•8 years ago
|
||
Comment 58•8 years ago
|
||
Pushed by bchiou@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/82530823e8f7
Part 1: Add some useful constructors for ComputedTimingFunction. r=birtles
https://hg.mozilla.org/integration/autoland/rev/c6b29c15b94e
Part 2: Use Servo css-parser for ParseEasing. r=birtles,emilio
https://hg.mozilla.org/integration/autoland/rev/1e67e6551949
Part 3: Replace pointer to const with immutable reference for nsTimingFunction. r=emilio,hiro
Comment 59•8 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/82530823e8f7
https://hg.mozilla.org/mozilla-central/rev/c6b29c15b94e
https://hg.mozilla.org/mozilla-central/rev/1e67e6551949
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
status-firefox55:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
You need to log in
before you can comment on or make changes to this bug.
Description
•