Open Bug 1224564 Opened 10 years ago Updated 3 years ago

"ASSERTION: why should we have flushed style again?" with video poster

Categories

(Core :: CSS Parsing and Computation, defect)

defect

Tracking

()

Tracking Status
firefox45 --- affected

People

(Reporter: jruderman, Unassigned)

References

Details

(Keywords: assertion, testcase)

Attachments

(3 files)

Attached file testcase
###!!! ASSERTION: why should we have flushed style again?: 'mPresShell && currentGeneration == mPresShell->GetPresContext()->GetRestyleGeneration()', file layout/style/nsComputedDOMStyle.cpp, line 719
Attached file stack
I see the same ASSERTION during |make mozmill| test suite of C-C TB. I ran the test locally by running locally created FULL DEBUG VERSION of C-C TB (this is under Debian GNU/Linux 64-bit) and I get the assertion 29 times - 33 times during the test run lately. (The frequency may change due to some intermittent errors.) ###!!! ASSERTION: why should we have flushed style again?: 'mPresShell && currentGeneration == mPresShell->GetPresContext()->GetRestyleGeneration()', file /NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp, line 722 I attach the first five instances of the assertions with stack trace below. The second and the third assertions appear back to back in the dump into the invoking console of |make mozmill|. So did the fourth and fifth assertions. The second one may be caused during signal processing(?) --- 1st [2599] ###!!! ASSERTION: why should we have flushed style again?: 'mPresShell && currentGeneration == mPresShell->GetPresContext()->GetRestyleGeneration()', file /NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp, line 719 #01: nsComputedDOMStyle::UpdateCurrentStyleSources(bool) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:716 (discriminator 7)) #02: nsComputedDOMStyle::GetPropertyCSSValue(nsAString_internal const&, mozilla::ErrorResult&) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:797) #03: nsComputedDOMStyle::GetPropertyValue(nsAString_internal const&, nsAString_internal&) (/NREF-COMM-CENTRAL/objdir-tb3/layout/style/../../dist/include/mozilla/AlreadyAddRefed.h:116) #04: nsComputedDOMStyle::GetPropertyValue(nsCSSProperty, nsAString_internal&) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:317) #05: mozilla::dom::CSS2PropertiesBinding::get_color(JSContext*, JS::Handle<JSObject*>, nsDOMCSSDeclaration*, JSJitGetterCallArgs) (/NREF-COMM-CENTRAL/objdir-tb3/dom/bindings/../../dist/include/mozilla/ErrorResult.h:224) #06: mozilla::dom::GenericBindingGetter(JSContext*, unsigned int, JS::Value*) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/bindings/BindingUtils.cpp:2613) #07: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:235) #08: js::Invoke(JSContext*, JS::CallArgs const&, js::MaybeConstruct) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:408) #09: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:460) #10: js::InvokeGetter(JSContext*, JS::Value const&, JS::Value, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:570) #11: bool GetExistingProperty<(js::AllowGC)1>(JSContext*, js::MaybeRooted<JS::Value, (js::AllowGC)1>::HandleType, js::MaybeRooted<js::NativeObject*, (js::AllowGC)1>::HandleType, js::MaybeRooted<js::Shape*, (js::AllowGC)1>::HandleType, js::MaybeRooted<JS::Value, (js::AllowGC)1>::MutableHandleType) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1655) #12: bool NativeGetPropertyInline<(js::AllowGC)1>(JSContext*, js::MaybeRooted<js::NativeObject*, (js::AllowGC)1>::HandleType, js::MaybeRooted<JS::Value, (js::AllowGC)1>::HandleType, js::MaybeRooted<jsid, (js::AllowGC)1>::HandleType, IsNameLookup, js::MaybeRooted<JS::Value, (js::AllowGC)1>::MutableHandleType) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1922) #13: js::NativeGetProperty(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1957) #14: JS_ForwardGetPropertyTo(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.h:1433) #15: mozilla::dom::GetPropertyOnPrototype(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, bool*, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/bindings/BindingUtils.cpp:1813) #16: mozilla::dom::CSS2PropertiesBinding::DOMProxyHandler::get(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) const (/NREF-COMM-CENTRAL/objdir-tb3/dom/bindings/CSS2PropertiesBinding.cpp:45006) #17: js::Proxy::get(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:300) #18: js::proxy_GetProperty(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:573) #19: js::GetProperty(JSContext*, JS::Handle<JS::Value>, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.h:1432) #20: js::jit::ComputeGetPropResult(JSContext*, js::jit::BaselineFrame*, JSOp, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jit/SharedIC.cpp:2951) #21: js::jit::DoGetPropFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICGetProp_Fallback*, JS::MutableHandle<JS::Value>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jit/SharedIC.cpp:3012) --- 2nd and 3rd [3042] ###!!! ASSERTION: why should we have flushed style again?: 'mPresShell && currentGeneration == mPresShell->GetPresContext()->GetRestyleGeneration()', file /NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp, line 719 #01: nsComputedDOMStyle::UpdateCurrentStyleSources(bool) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:716 (discriminator 7)) #02: nsComputedDOMStyle::GetPropertyCSSValue(nsAString_internal const&, mozilla::ErrorResult&) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:797) #03: nsComputedDOMStyle::GetPropertyValue(nsAString_internal const&, nsAString_internal&) (/NREF-COMM-CENTRAL/objdir-tb3/layout/style/../../dist/include/mozilla/AlreadyAddRefed.h:116) #04: nsComputedDOMStyle::GetPropertyValue(nsCSSProperty, nsAString_internal&) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:317) #05: mozilla::dom::CSS2PropertiesBinding::get_color(JSContext*, JS::Handle<JSObject*>, nsDOMCSSDeclaration*, JSJitGetterCallArgs) (/NREF-COMM-CENTRAL/objdir-tb3/dom/bindings/../../dist/include/mozilla/ErrorResult.h:224) #06: mozilla::dom::GenericBindingGetter(JSContext*, unsigned int, JS::Value*) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/bindings/BindingUtils.cpp:2613) #07: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:235) #08: js::Invoke(JSContext*, JS::CallArgs const&, js::MaybeConstruct) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:408) #09: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:460) #10: js::InvokeGetter(JSContext*, JS::Value const&, JS::Value, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:570) #11: bool GetExistingProperty<(js::AllowGC)1>(JSContext*, js::MaybeRooted<JS::Value, (js::AllowGC)1>::HandleType, js::MaybeRooted<js::NativeObject*, (js::AllowGC)1>::HandleType, js::MaybeRooted<js::Shape*, (js::AllowGC)1>::HandleType, js::MaybeRooted<JS::Value, (js::AllowGC)1>::MutableHandleType) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1655) #12: bool NativeGetPropertyInline<(js::AllowGC)1>(JSContext*, js::MaybeRooted<js::NativeObject*, (js::AllowGC)1>::HandleType, js::MaybeRooted<JS::Value, (js::AllowGC)1>::HandleType, js::MaybeRooted<jsid, (js::AllowGC)1>::HandleType, IsNameLookup, js::MaybeRooted<JS::Value, (js::AllowGC)1>::MutableHandleType) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1922) #13: js::NativeGetProperty(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1957) #14: JS_ForwardGetPropertyTo(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.h:1433) #15: mozilla::dom::GetPropertyOnPrototype(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, bool*, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/bindings/BindingUtils.cpp:1813) #16: mozilla::dom::CSS2PropertiesBinding::DOMProxyHandler::get(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) const (/NREF-COMM-CENTRAL/objdir-tb3/dom/bindings/CSS2PropertiesBinding.cpp:45006) #17: js::Proxy::get(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:300) #18: js::proxy_GetProperty(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:573) #19: js::GetProperty(JSContext*, JS::Handle<JS::Value>, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.h:1432) #20: Interpret(JSContext*, js::RunState&) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:167) #21: js::RunScript(JSContext*, js::RunState&) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:355) #22: js::Invoke(JSContext*, JS::CallArgs const&, js::MaybeConstruct) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:426) #23: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:460) #24: JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jsapi.cpp:2839) #25: mozilla::dom::EventListener::HandleEvent(JSContext*, JS::Handle<JS::Value>, mozilla::dom::Event&, mozilla::ErrorResult&) (/NREF-COMM-CENTRAL/objdir-tb3/dom/bindings/EventListenerBinding.cpp:47) #26: void mozilla::dom::EventListener::HandleEvent<mozilla::dom::EventTarget*>(mozilla::dom::EventTarget* const&, mozilla::dom::Event&, mozilla::ErrorResult&, char const*, mozilla::dom::CallbackObject::ExceptionHandling, JSCompartment*) (/NREF-COMM-CENTRAL/objdir-tb3/dom/events/../../dist/include/js/RootingAPI.h:719) #27: mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener*, nsIDOMEvent*, mozilla::dom::EventTarget*) (/NREF-COMM-CENTRAL/objdir-tb3/dom/events/../../dist/include/mozilla/ErrorResult.h:242) #28: mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, nsIDOMEvent**, mozilla::dom::EventTarget*, nsEventStatus*) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/events/EventListenerManager.cpp:1156) #29: mozilla::EventTargetChainItem::HandleEvent(mozilla::EventChainPostVisitor&, mozilla::ELMCreationDetector&) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/events/EventDispatcher.cpp:226) #30: mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/events/EventDispatcher.cpp:315) #31: mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, nsIDOMEvent*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget*>*) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/events/EventDispatcher.cpp:656) #32: mozilla::EventDispatcher::DispatchDOMEvent(nsISupports*, mozilla::WidgetEvent*, nsIDOMEvent*, nsPresContext*, nsEventStatus*) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/events/EventDispatcher.cpp:720) #33: nsGlobalWindow::DispatchEvent(nsIDOMEvent*, bool*) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/base/nsGlobalWindow.cpp:9127) #34: nsGlobalWindow::DispatchEvent(nsIDOMEvent*, bool*) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/base/nsGlobalWindow.cpp:9131) #35: nsContentUtils::DispatchEvent(nsIDocument*, nsISupports*, nsAString_internal const&, bool, bool, bool, bool*, bool) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/base/nsContentUtils.cpp:3809 (discriminator 4)) #36: nsContentUtils::DispatchEventOnlyToChrome(nsIDocument*, nsISupports*, nsAString_internal const&, bool, bool, bool*) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/base/nsContentUtils.cpp:3852) #37: nsFocusManager::ActivateOrDeactivate(nsPIDOMWindow*, bool) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/base/nsFocusManager.cpp:1148 (discriminator 4)) #38: nsFocusManager::WindowLowered(nsIDOMWindow*) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/base/nsFocusManager.cpp:779) #39: nsWebShellWindow::WindowDeactivated() (/NREF-COMM-CENTRAL/comm-central/mozilla/xpfe/appshell/nsWebShellWindow.cpp:436) #40: nsWindow::DispatchDeactivateEvent() (/NREF-COMM-CENTRAL/comm-central/mozilla/widget/gtk/nsWindow.cpp:528) #41: nsWindow::OnContainerFocusOutEvent(_GdkEventFocus*) (/NREF-COMM-CENTRAL/comm-central/mozilla/widget/gtk/nsWindow.cpp:2937) #42: focus_out_event_cb(_GtkWidget*, _GdkEventFocus*) (/NREF-COMM-CENTRAL/objdir-tb3/widget/gtk/../../dist/include/mozilla/RefPtr.h:55 (discriminator 1)) #43: gtk_main_do_event (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0) #44: closure_invoke_notifiers (/build/glib2.0-l3js1a/glib2.0-2.46.1/./gobject/gclosure.c:290) #45: accumulate (/build/glib2.0-l3js1a/glib2.0-2.46.1/./gobject/gsignal.c:3133) #46: g_signal_emit_valist (/build/glib2.0-l3js1a/glib2.0-2.46.1/./gobject/gsignal.c:3395) #47: g_signal_emit (/build/glib2.0-l3js1a/glib2.0-2.46.1/./gobject/gsignal.c:3441) #48: gtk_requisition_copy (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0) #49: gtk_widget_send_focus_change (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0) #50: gtk_widget_path_has_parent (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0) #51: gtk_window_activate_key (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0) #52: gtk_window_set_mnemonics_visible (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0) #53: gtk_main_do_event (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0) #54: closure_invoke_notifiers (/build/glib2.0-l3js1a/glib2.0-2.46.1/./gobject/gclosure.c:290) #55: accumulate (/build/glib2.0-l3js1a/glib2.0-2.46.1/./gobject/gsignal.c:3133) #56: g_signal_emit_valist (/build/glib2.0-l3js1a/glib2.0-2.46.1/./gobject/gsignal.c:3395) #57: g_signal_emit (/build/glib2.0-l3js1a/glib2.0-2.46.1/./gobject/gsignal.c:3441) #58: gtk_requisition_copy (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0) #59: gtk_main_do_event (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0) #60: gdk_x11_drag_context_get_type (/usr/lib/x86_64-linux-gnu/libgdk-3.so.0) #61: g_main_dispatch (/build/glib2.0-l3js1a/glib2.0-2.46.1/./glib/gmain.c:3157) #62: g_main_context_iterate (/build/glib2.0-l3js1a/glib2.0-2.46.1/./glib/gmain.c:3840) #63: g_main_context_iteration (/build/glib2.0-l3js1a/glib2.0-2.46.1/./glib/gmain.c:3902) #64: nsAppShell::ProcessNextNativeEvent(bool) (/NREF-COMM-CENTRAL/comm-central/mozilla/widget/gtk/nsAppShell.cpp:208) #65: nsBaseAppShell::DoProcessNextNativeEvent(bool) (/NREF-COMM-CENTRAL/comm-central/mozilla/widget/nsBaseAppShell.cpp:138) #66: nsBaseAppShell::OnProcessNextEvent(nsIThreadInternal*, bool) (/NREF-COMM-CENTRAL/comm-central/mozilla/widget/nsBaseAppShell.cpp:289) #67: nsThread::ProcessNextEvent(bool, bool*) (/NREF-COMM-CENTRAL/objdir-tb3/xpcom/threads/../../dist/include/nsTArray.h:358) #68: NS_ProcessNextEvent(nsIThread*, bool) (/NREF-COMM-CENTRAL/comm-central/mozilla/xpcom/glue/nsThreadUtils.cpp:297) #69: nsXULWindow::ShowModal() (/NREF-COMM-CENTRAL/comm-central/mozilla/xpfe/appshell/nsXULWindow.cpp:398) #70: nsContentTreeOwner::ShowAsModal() (/NREF-COMM-CENTRAL/comm-central/mozilla/xpfe/appshell/nsContentTreeOwner.cpp:578) #71: nsWindowWatcher::OpenWindowInternal(nsIDOMWindow*, char const*, char const*, char const*, bool, bool, bool, nsITabParent*, nsIArray*, nsIDOMWindow**) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/base/nsPIDOMWindow.h:952) #72: nsWindowWatcher::OpenWindow(nsIDOMWindow*, char const*, char const*, char const*, nsISupports*, nsIDOMWindow**) (/NREF-COMM-CENTRAL/comm-central/mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp:369) #73: NS_InvokeByIndex (/NREF-COMM-CENTRAL/comm-central/mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_x86_64_unix.cpp:178) #74: XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNative.cpp:1414) #75: XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:1115) #76: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:235) #77: js::Invoke(JSContext*, JS::CallArgs const&, js::MaybeConstruct) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:408) #78: Interpret(JSContext*, js::RunState&) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2700) #79: js::RunScript(JSContext*, js::RunState&) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:355) #80: js::Invoke(JSContext*, JS::CallArgs const&, js::MaybeConstruct) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:426) #81: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:460) #82: JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jsapi.cpp:2792) #83: nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS*, unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedJSClass.cpp:1221) #84: nsXPCWrappedJS::CallMethod(unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedJS.cpp:603) #85: PrepareAndDispatch (/NREF-COMM-CENTRAL/comm-central/mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_linux.cpp:122) #86: SharedStub (xptcstubs_x86_64_linux.cpp:?) [3042] ###!!! ASSERTION: why should we have flushed style again?: 'mPresShell && currentGeneration == mPresShell->GetPresContext()->GetRestyleGeneration()', file /NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp, line 719 #01: nsComputedDOMStyle::UpdateCurrentStyleSources(bool) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:716 (discriminator 7)) #02: nsComputedDOMStyle::GetPropertyCSSValue(nsAString_internal const&, mozilla::ErrorResult&) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:797) #03: nsComputedDOMStyle::GetPropertyValue(nsAString_internal const&, nsAString_internal&) (/NREF-COMM-CENTRAL/objdir-tb3/layout/style/../../dist/include/mozilla/AlreadyAddRefed.h:116) #04: nsComputedDOMStyle::GetPropertyValue(nsCSSProperty, nsAString_internal&) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:317) #05: mozilla::dom::CSS2PropertiesBinding::get_color(JSContext*, JS::Handle<JSObject*>, nsDOMCSSDeclaration*, JSJitGetterCallArgs) (/NREF-COMM-CENTRAL/objdir-tb3/dom/bindings/../../dist/include/mozilla/ErrorResult.h:224) #06: mozilla::dom::GenericBindingGetter(JSContext*, unsigned int, JS::Value*) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/bindings/BindingUtils.cpp:2613) #07: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:235) #08: js::Invoke(JSContext*, JS::CallArgs const&, js::MaybeConstruct) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:408) #09: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:460) #10: js::InvokeGetter(JSContext*, JS::Value const&, JS::Value, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:570) #11: bool GetExistingProperty<(js::AllowGC)1>(JSContext*, js::MaybeRooted<JS::Value, (js::AllowGC)1>::HandleType, js::MaybeRooted<js::NativeObject*, (js::AllowGC)1>::HandleType, js::MaybeRooted<js::Shape*, (js::AllowGC)1>::HandleType, js::MaybeRooted<JS::Value, (js::AllowGC)1>::MutableHandleType) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1655) #12: bool NativeGetPropertyInline<(js::AllowGC)1>(JSContext*, js::MaybeRooted<js::NativeObject*, (js::AllowGC)1>::HandleType, js::MaybeRooted<JS::Value, (js::AllowGC)1>::HandleType, js::MaybeRooted<jsid, (js::AllowGC)1>::HandleType, IsNameLookup, js::MaybeRooted<JS::Value, (js::AllowGC)1>::MutableHandleType) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1922) #13: js::NativeGetProperty(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1957) #14: JS_ForwardGetPropertyTo(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.h:1433) #15: mozilla::dom::GetPropertyOnPrototype(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, bool*, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/bindings/BindingUtils.cpp:1813) #16: mozilla::dom::CSS2PropertiesBinding::DOMProxyHandler::get(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) const (/NREF-COMM-CENTRAL/objdir-tb3/dom/bindings/CSS2PropertiesBinding.cpp:45006) #17: js::Proxy::get(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:300) #18: js::proxy_GetProperty(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:573) #19: js::GetProperty(JSContext*, JS::Handle<JS::Value>, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.h:1432) #20: js::jit::ComputeGetPropResult(JSContext*, js::jit::BaselineFrame*, JSOp, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jit/SharedIC.cpp:2951) #21: js::jit::DoGetPropFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICGetProp_Fallback*, JS::MutableHandle<JS::Value>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jit/SharedIC.cpp:3012) #22: ??? (???:???) --- 4th and 5th [3042] ###!!! ASSERTION: why should we have flushed style again?: 'mPresShell && currentGeneration == mPresShell->GetPresContext()->GetRestyleGeneration()', file /NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp, line 719 #01: nsComputedDOMStyle::UpdateCurrentStyleSources(bool) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:716 (discriminator 7)) #02: nsComputedDOMStyle::GetPropertyCSSValue(nsAString_internal const&, mozilla::ErrorResult&) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:797) #03: nsComputedDOMStyle::GetPropertyValue(nsAString_internal const&, nsAString_internal&) (/NREF-COMM-CENTRAL/objdir-tb3/layout/style/../../dist/include/mozilla/AlreadyAddRefed.h:116) #04: nsComputedDOMStyle::GetPropertyValue(nsCSSProperty, nsAString_internal&) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:317) #05: mozilla::dom::CSS2PropertiesBinding::get_color(JSContext*, JS::Handle<JSObject*>, nsDOMCSSDeclaration*, JSJitGetterCallArgs) (/NREF-COMM-CENTRAL/objdir-tb3/dom/bindings/../../dist/include/mozilla/ErrorResult.h:224) #06: mozilla::dom::GenericBindingGetter(JSContext*, unsigned int, JS::Value*) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/bindings/BindingUtils.cpp:2613) #07: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:235) #08: js::Invoke(JSContext*, JS::CallArgs const&, js::MaybeConstruct) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:408) #09: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:460) #10: js::InvokeGetter(JSContext*, JS::Value const&, JS::Value, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:570) #11: bool GetExistingProperty<(js::AllowGC)1>(JSContext*, js::MaybeRooted<JS::Value, (js::AllowGC)1>::HandleType, js::MaybeRooted<js::NativeObject*, (js::AllowGC)1>::HandleType, js::MaybeRooted<js::Shape*, (js::AllowGC)1>::HandleType, js::MaybeRooted<JS::Value, (js::AllowGC)1>::MutableHandleType) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1655) #12: bool NativeGetPropertyInline<(js::AllowGC)1>(JSContext*, js::MaybeRooted<js::NativeObject*, (js::AllowGC)1>::HandleType, js::MaybeRooted<JS::Value, (js::AllowGC)1>::HandleType, js::MaybeRooted<jsid, (js::AllowGC)1>::HandleType, IsNameLookup, js::MaybeRooted<JS::Value, (js::AllowGC)1>::MutableHandleType) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1922) #13: js::NativeGetProperty(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1957) #14: JS_ForwardGetPropertyTo(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.h:1433) #15: mozilla::dom::GetPropertyOnPrototype(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, bool*, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/bindings/BindingUtils.cpp:1813) #16: mozilla::dom::CSS2PropertiesBinding::DOMProxyHandler::get(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) const (/NREF-COMM-CENTRAL/objdir-tb3/dom/bindings/CSS2PropertiesBinding.cpp:45006) #17: js::Proxy::get(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:300) #18: js::proxy_GetProperty(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:573) #19: js::GetProperty(JSContext*, JS::Handle<JS::Value>, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.h:1432) #20: js::jit::ComputeGetPropResult(JSContext*, js::jit::BaselineFrame*, JSOp, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jit/SharedIC.cpp:2951) #21: js::jit::DoGetPropFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICGetProp_Fallback*, JS::MutableHandle<JS::Value>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jit/SharedIC.cpp:3012) #22: ??? (???:???) [3042] ###!!! ASSERTION: why should we have flushed style again?: 'mPresShell && currentGeneration == mPresShell->GetPresContext()->GetRestyleGeneration()', file /NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp, line 719 #01: nsComputedDOMStyle::UpdateCurrentStyleSources(bool) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:716 (discriminator 7)) #02: nsComputedDOMStyle::GetPropertyCSSValue(nsAString_internal const&, mozilla::ErrorResult&) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:797) #03: nsComputedDOMStyle::GetPropertyValue(nsAString_internal const&, nsAString_internal&) (/NREF-COMM-CENTRAL/objdir-tb3/layout/style/../../dist/include/mozilla/AlreadyAddRefed.h:116) #04: nsComputedDOMStyle::GetPropertyValue(nsCSSProperty, nsAString_internal&) (/NREF-COMM-CENTRAL/comm-central/mozilla/layout/style/nsComputedDOMStyle.cpp:317) #05: mozilla::dom::CSS2PropertiesBinding::get_color(JSContext*, JS::Handle<JSObject*>, nsDOMCSSDeclaration*, JSJitGetterCallArgs) (/NREF-COMM-CENTRAL/objdir-tb3/dom/bindings/../../dist/include/mozilla/ErrorResult.h:224) #06: mozilla::dom::GenericBindingGetter(JSContext*, unsigned int, JS::Value*) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/bindings/BindingUtils.cpp:2613) #07: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:235) #08: js::Invoke(JSContext*, JS::CallArgs const&, js::MaybeConstruct) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:408) #09: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:460) #10: js::InvokeGetter(JSContext*, JS::Value const&, JS::Value, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:570) #11: bool GetExistingProperty<(js::AllowGC)1>(JSContext*, js::MaybeRooted<JS::Value, (js::AllowGC)1>::HandleType, js::MaybeRooted<js::NativeObject*, (js::AllowGC)1>::HandleType, js::MaybeRooted<js::Shape*, (js::AllowGC)1>::HandleType, js::MaybeRooted<JS::Value, (js::AllowGC)1>::MutableHandleType) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1655) #12: bool NativeGetPropertyInline<(js::AllowGC)1>(JSContext*, js::MaybeRooted<js::NativeObject*, (js::AllowGC)1>::HandleType, js::MaybeRooted<JS::Value, (js::AllowGC)1>::HandleType, js::MaybeRooted<jsid, (js::AllowGC)1>::HandleType, IsNameLookup, js::MaybeRooted<JS::Value, (js::AllowGC)1>::MutableHandleType) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1922) #13: js::NativeGetProperty(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.cpp:1957) #14: JS_ForwardGetPropertyTo(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.h:1433) #15: mozilla::dom::GetPropertyOnPrototype(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, bool*, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/dom/bindings/BindingUtils.cpp:1813) #16: mozilla::dom::CSS2PropertiesBinding::DOMProxyHandler::get(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) const (/NREF-COMM-CENTRAL/objdir-tb3/dom/bindings/CSS2PropertiesBinding.cpp:45006) #17: js::Proxy::get(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:300) #18: js::proxy_GetProperty(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:573) #19: js::GetProperty(JSContext*, JS::Handle<JS::Value>, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/NativeObject.h:1432) #20: js::jit::ComputeGetPropResult(JSContext*, js::jit::BaselineFrame*, JSOp, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jit/SharedIC.cpp:2951) #21: js::jit::DoGetPropFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICGetProp_Fallback*, JS::MutableHandle<JS::Value>, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jit/SharedIC.cpp:3012) #22: ??? (???:???) GetDiskSpaceAvailable returned: 14005018624 bytes
I guess this assertion causes some intermittent oranges caused by timeout, e.g., bug 1210208, bug 1113930. After reading codes around the assertion, I noticed that mStyleContextGeneration is not set at all there. This patch sets mStyleContextGeneration to mPresShell->GetPresContext()->GetRestyleGeneration() (it should be currentGeneration, I am not sure), but the assertion is still hit. Cameron, it implies that there is still some edge cases for improvement to avoid re-resolving style? Moreover interestingly, with this patch two test cases which has been added in bug 1203766 fail. 301242 INFO TEST-UNEXPECTED-FAIL | layout/style/test/test_bug1203766.html | undefined assertion name - got "rgb(255, 0, 0)", expected "rgb(0, 128, 0)" SimpleTest.is@SimpleTest/SimpleTest.js:267:5 @layout/style/test/test_bug1203766.html:95:3 SimpleTest._newCallStack/rval@SimpleTest/SimpleTest.js:144:17 EventHandlerNonNull*this.addLoadEvent@SimpleTest/SimpleTest.js:169:13 @SimpleTest/SimpleTest.js:1286:5 301243 INFO TEST-UNEXPECTED-FAIL | layout/style/test/test_bug1203766.html | undefined assertion name - got "rgb(255, 0, 0)", expected "rgb(0, 128, 0)" SimpleTest.is@SimpleTest/SimpleTest.js:267:5 @layout/style/test/test_bug1203766.html:107:3 SimpleTest._newCallStack/rval@SimpleTest/SimpleTest.js:144:17 EventHandlerNonNull*this.addLoadEvent@SimpleTest/SimpleTest.js:169:13
Flags: needinfo?(cam)
Thanks for that patch, Hiroyuki. We should indeed be assigning to mStyleContextGeneration! I'm not sure how I overlooked that. If we do that, there is no need to assert. With this test case, we flush layout at the top of UpdateCurrentStyleSources, and as part of processing those restyles, we reflow the <video> element, which adds a script runner here: https://dxr.mozilla.org/mozilla-central/rev/1ec3a3ff68f2d1a54e6ed33e926c28fee286bdf1/layout/generic/nsVideoFrame.cpp#307 This event is dispatched when the script blocker is released here: https://dxr.mozilla.org/mozilla-central/rev/1ec3a3ff68f2d1a54e6ed33e926c28fee286bdf1/layout/base/nsPresShell.cpp#3979 The event handler does something to cause some pending restyles to be added, bumping the restyle generation. Later, in the second style flush under nsComputedDOMStyle::GetStyleContextForElement, we flush those restyles. So ultimately this assertion is invalid, and we should just re-get the generation after resolving the style context.
Flags: needinfo?(cam)
Comment on attachment 8700937 [details] [diff] [review] Set mStyleContextGeneration to avoid re-resolving styles Review of attachment 8700937 [details] [diff] [review]: ----------------------------------------------------------------- r=me if you remove the assertion as well.
Attachment #8700937 - Flags: review+
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: