Closed Bug 1343153 Opened 8 years ago Closed 8 years ago

stylo: use servo css-parser for ParseEasing

Categories

(Core :: DOM: Animation, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla55
Tracking Status
firefox55 --- fixed

People

(Reporter: boris, Assigned: boris)

References

Details

Attachments

(5 files, 1 obsolete file)

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: nobody → boris.chiou
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 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+
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.
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.
(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 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+
(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 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 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 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.
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 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.
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.
(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.
(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.
Attachment #8848540 - Flags: review?(bugmail)
Status: NEW → ASSIGNED
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
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 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.
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 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+
Attached file Servo PR, #16055
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
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)
(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)
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.
I think it's similar to bug 1336769.
We could also ensure that the CSS parser doesn't return infinite values instead, I remember to have discussed with Simon about this before.
(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.
(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 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 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.
See Also: → 1336769
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+
Attachment #8849524 - Attachment is obsolete: true
Attached file Servo PR, #16062
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
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: