Closed Bug 761848 Opened 13 years ago Closed 11 years ago

"ASSERTION: Shouldn't be trying to restyle non-elements directly" with document.dir

Categories

(Core :: CSS Parsing and Computation, defect)

x86_64
macOS
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: jruderman, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(2 files)

Attached file testcase
###!!! ASSERTION: style context has old rule node: 'n == mRuleTree', file layout/style/nsStyleSet.cpp, line 199 ###!!! ASSERTION: old rule tree still referenced: 'Not Reached', file layout/style/nsStyleSet.cpp, line 1326 ###!!! ASSERTION: must be in the same rule tree as parent: 'r1 == r2', file layout/style/nsStyleContext.cpp, line 61 ###!!! ASSERTION: Shouldn't be trying to restyle non-elements directly: '!aContent || aContent->IsElement()', file layout/base/nsStyleChangeList.cpp, line 65 This might be related to bug 738190. Bug 738190's testcase triggers the first three assertions, but not the fourth.
Attached file stack trace
Depends on: 738190
This is triggering all the time on browser/components/sessionstore/test/browser_586068-reload.js and friends -- take a look at any Windows debug mochitest-o run.
(Note that it's triggering directly, without any of the previous assertions.)
Hmm, it is the textnode with content "0" in the test case in comment 0 which is triggering the assertion: https://gist.github.com/3873624 I can't repro the assertion in comment 2.
Blocks: 815661
I'm seeing the "restyle non-elements" in Thunderbird as well, the stack is quite deep but the nsIContent* it's complaining about is an nsTextNode that appears to be empty (nsTextFragment nsTextNode.mText contains all 0 values) #0 0x000000010198e529 in nsStyleChangeList::AppendChange at /Users/ireid/tbird/comm-central/mozilla/layout/base/nsStyleChangeList.cpp:64 #1 0x0000000101921cab in CaptureChange at /Users/ireid/tbird/comm-central/mozilla/layout/base/nsFrameManager.cpp:1002 #2 0x0000000101920523 in nsFrameManager::ReResolveStyleContext at /Users/ireid/tbird/comm-central/mozilla/layout/base/nsFrameManager.cpp:1300 #3 0x0000000101921739 in nsFrameManager::ReResolveStyleContext(nsPresContext*, nsIFrame*, nsIContent*, nsStyleChangeList*, nsChangeHint, nsChangeHint, nsRestyleHint, mozilla::css::RestyleTracker&, nsFrameManager::DesiredA11yNotifications, nsTArray<nsIContent*>&, TreeMatchContext&) () #4 0x0000000101921739 in nsFrameManager::ReResolveStyleContext(nsPresContext*, nsIFrame*, nsIContent*, nsStyleChangeList*, nsChangeHint, nsChangeHint, nsRestyleHint, mozilla::css::RestyleTracker&, nsFrameManager::DesiredA11yNotifications, nsTArray<nsIContent*>&, TreeMatchContext&) () #5 0x0000000101921739 in nsFrameManager::ReResolveStyleContext(nsPresContext*, nsIFrame*, nsIContent*, nsStyleChangeList*, nsChangeHint, nsChangeHint, nsRestyleHint, mozilla::css::RestyleTracker&, nsFrameManager::DesiredA11yNotifications, nsTArray<nsIContent*>&, TreeMatchContext&) () #6 0x0000000101921739 in nsFrameManager::ReResolveStyleContext(nsPresContext*, nsIFrame*, nsIContent*, nsStyleChangeList*, nsChangeHint, nsChangeHint, nsRestyleHint, mozilla::css::RestyleTracker&, nsFrameManager::DesiredA11yNotifications, nsTArray<nsIContent*>&, TreeMatchContext&) () #7 0x0000000101921739 in nsFrameManager::ReResolveStyleContext(nsPresContext*, nsIFrame*, nsIContent*, nsStyleChangeList*, nsChangeHint, nsChangeHint, nsRestyleHint, mozilla::css::RestyleTracker&, nsFrameManager::DesiredA11yNotifications, nsTArray<nsIContent*>&, TreeMatchContext&) () #8 0x0000000101921739 in nsFrameManager::ReResolveStyleContext(nsPresContext*, nsIFrame*, nsIContent*, nsStyleChangeList*, nsChangeHint, nsChangeHint, nsRestyleHint, mozilla::css::RestyleTracker&, nsFrameManager::DesiredA11yNotifications, nsTArray<nsIContent*>&, TreeMatchContext&) () #9 0x0000000101921739 in nsFrameManager::ReResolveStyleContext(nsPresContext*, nsIFrame*, nsIContent*, nsStyleChangeList*, nsChangeHint, nsChangeHint, nsRestyleHint, mozilla::css::RestyleTracker&, nsFrameManager::DesiredA11yNotifications, nsTArray<nsIContent*>&, TreeMatchContext&) () #10 0x00000001019215fe in nsFrameManager::ReResolveStyleContext(nsPresContext*, nsIFrame*, nsIContent*, nsStyleChangeList*, nsChangeHint, nsChangeHint, nsRestyleHint, mozilla::css::RestyleTracker&, nsFrameManager::DesiredA11yNotifications, nsTArray<nsIContent*>&, TreeMatchContext&) () #11 0x0000000101921739 in nsFrameManager::ReResolveStyleContext(nsPresContext*, nsIFrame*, nsIContent*, nsStyleChangeList*, nsChangeHint, nsChangeHint, nsRestyleHint, mozilla::css::RestyleTracker&, nsFrameManager::DesiredA11yNotifications, nsTArray<nsIContent*>&, TreeMatchContext&) () #12 0x0000000101921739 in nsFrameManager::ReResolveStyleContext(nsPresContext*, nsIFrame*, nsIContent*, nsStyleChangeList*, nsChangeHint, nsChangeHint, nsRestyleHint, mozilla::css::RestyleTracker&, nsFrameManager::DesiredA11yNotifications, nsTArray<nsIContent*>&, TreeMatchContext&) () #13 0x0000000101921739 in nsFrameManager::ReResolveStyleContext(nsPresContext*, nsIFrame*, nsIContent*, nsStyleChangeList*, nsChangeHint, nsChangeHint, nsRestyleHint, mozilla::css::RestyleTracker&, nsFrameManager::DesiredA11yNotifications, nsTArray<nsIContent*>&, TreeMatchContext&) () #14 0x0000000101921739 in nsFrameManager::ReResolveStyleContext(nsPresContext*, nsIFrame*, nsIContent*, nsStyleChangeList*, nsChangeHint, nsChangeHint, nsRestyleHint, mozilla::css::RestyleTracker&, nsFrameManager::DesiredA11yNotifications, nsTArray<nsIContent*>&, TreeMatchContext&) () #15 0x0000000101921fb0 in nsFrameManager::ComputeStyleChangeFor(nsIFrame*, nsStyleChangeList*, nsChangeHint, mozilla::css::RestyleTracker&, bool) () #16 0x0000000101893552 in nsCSSFrameConstructor::RestyleElement(mozilla::dom::Element*, nsIFrame*, nsChangeHint, mozilla::css::RestyleTracker&, bool) () #17 0x0000000101875162 in mozilla::css::RestyleTracker::ProcessOneRestyle(mozilla::dom::Element*, nsRestyleHint, nsChangeHint) () #18 0x0000000101874188 in mozilla::css::RestyleTracker::DoProcessRestyles() () #19 0x00000001018a0879 in mozilla::css::RestyleTracker::ProcessRestyles() () #20 0x0000000101899fca in nsCSSFrameConstructor::ProcessPendingRestyles() () #21 0x0000000101964081 in PresShell::FlushPendingNotifications(mozilla::ChangesToFlush) () #22 0x0000000101963b3b in PresShell::FlushPendingNotifications(mozFlushType) () #23 0x0000000101df8dbf in nsDocument::FlushPendingNotifications(mozFlushType) () #24 0x0000000101e4fcf7 in mozilla::dom::Element::GetPrimaryFrame(mozFlushType) () #25 0x0000000101e4fc5a in mozilla::dom::Element::GetStyledFrame() () #26 0x0000000101e4fe9c in mozilla::dom::Element::GetScrollFrame(nsIFrame**) () #27 0x0000000101e5044a in mozilla::dom::Element::GetClientAreaRect() () #28 0x0000000101e68fcc in mozilla::dom::Element::ClientWidth() () #29 0x00000001042fac21 in mozilla::dom::ElementBinding::get_clientWidth(JSContext*, JS::Handle<JSObject*>, mozilla::dom::Element*, JS::Value*) () #30 0x00000001042f2dc1 in mozilla::dom::ElementBinding::genericGetter(JSContext*, unsigned int, JS::Value*) () #31 0x0000000105754602 in _ZN2js12CallJSNativeEP9JSContextPFiS1_jPN2JS5ValueEERKNS2_8CallArgsE [inlined] () #32 0x0000000105754602 in js::InvokeKernel(JSContext*, JS::CallArgs, js::MaybeConstruct) () #33 0x0000000105642983 in js::Invoke(JSContext*, js::InvokeArgsGuard&, js::MaybeConstruct) () #34 0x0000000105755809 in js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value*, JS::Value*) () #35 0x0000000105756e56 in js::InvokeGetterOrSetter(JSContext*, JSObject*, JS::Value const&, unsigned int, JS::Value*, JS::Value*) () #36 0x00000001058040e5 in js::Shape::get(JSContext*, JS::Handle<JSObject*>, JSObject*, JSObject*, JS::MutableHandle<JS::Value>) () #37 0x00000001057e0fc0 in _ZL15NativeGetInlineILN2js7AllowGCE1EEiP9JSContextNS0_11MaybeRootedIP8JSObjectXT_EE10HandleTypeES8_S8_NS4_IPNS0_5ShapeEXT_EE10HandleTypeEjNS4_IN2JS5ValueEXT_EE17MutableHandleTypeE [inlined] () #38 0x00000001057e0fc0 in _ZL23GetPropertyHelperInlineILN2js7AllowGCE1EEiP9JSContextNS0_11MaybeRootedIP8JSObjectXT_EE10HandleTypeES8_NS4_I4jsidXT_EE10HandleTypeEjNS4_IN2JS5ValueEXT_EE17MutableHandleTypeE [inlined] () #39 0x00000001057e0fc0 in js::GetPropertyHelper(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>, unsigned int, JS::MutableHandle<JS::Value>) () #40 0x0000000105771687 in js::GetPropertyOperation(JSContext*, JSScript*, unsigned char*, JS::MutableHandle<JS::Value>, JS::MutableHandle<JS::Value>) () #41 0x0000000105d60cf9 in js::mjit::ic::GetProp(js::VMFrame&, js::mjit::ic::PICInfo*) () #42 0x0000000118dd35c1 in <????> () #43 0x0000000105c2674a in js::mjit::EnterMethodJIT(JSContext*, js::StackFrame*, void*, JS::Value*, bool) () #44 0x0000000105c26cad in CheckStackAndEnterMethodJIT(JSContext*, js::StackFrame*, void*, bool) () #45 0x0000000105c26d04 in js::mjit::JaegerShotAtSafePoint(JSContext*, void*, bool) () #46 0x000000010572ab4b in js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) () #47 0x0000000105729048 in js::RunScript(JSContext*, js::StackFrame*) () #48 0x000000010575481f in js::InvokeKernel(JSContext*, JS::CallArgs, js::MaybeConstruct) () #49 0x0000000105642983 in js::Invoke(JSContext*, js::InvokeArgsGuard&, js::MaybeConstruct) () #50 0x0000000105755809 in js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value*, JS::Value*) () #51 0x000000010556bc9d in JS_CallFunctionValue(JSContext*, JSObject*, JS::Value, unsigned int, JS::Value*, JS::Value*) () #52 0x0000000102ef9cb5 in nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS*, unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) () #53 0x0000000102ee8074 in nsXPCWrappedJS::CallMethod(unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) () #54 0x0000000104aac989 in PrepareAndDispatch () #55 0x0000000104aab3eb in SharedStub () #56 0x0000000103d2062d in nsMimeHtmlDisplayEmitter::BroadcastHeaders(nsIMsgHeaderSink*, int, bool) () #57 0x0000000103d20922 in nsMimeHtmlDisplayEmitter::WriteHTMLHeaders(nsACString_internal const&) () #58 0x0000000103d20bc8 in nsMimeHtmlDisplayEmitter::EndHeader(nsACString_internal const&) () #59 0x0000000103cfa870 in mimeEmitterEndHeader () #60 0x0000000103ce1da5 in MimeMessage_write_headers_html(MimeObject*) () #61 0x0000000103ce12ce in MimeMessage_close_headers(MimeObject*) () #62 0x0000000103ce059f in MimeMessage_parse_line(char const*, int, MimeObject*) () #63 0x0000000103cf393a in convert_and_send_buffer(char*, int, bool, int (*)(char*, unsigned int, void*), void*) () #64 0x0000000103cf36e1 in mime_LineBuffer () #65 0x0000000103ce74e5 in MimeObject_parse_buffer(char const*, int, MimeObject*) () #66 0x0000000103cf7734 in mime_display_stream_write () #67 0x0000000103d08ac3 in nsStreamConverter::OnDataAvailable(nsIRequest*, nsISupports*, nsIInputStream*, unsigned long long, unsigned int) () #68 0x0000000103095207 in nsDocumentOpenInfo::OnDataAvailable(nsIRequest*, nsISupports*, nsIInputStream*, unsigned long long, unsigned int) () #69 0x0000000103b5c839 in nsImapCacheStreamListener::OnDataAvailable(nsIRequest*, nsISupports*, nsIInputStream*, unsigned long long, unsigned int) () #70 0x0000000101477123 in nsInputStreamPump::OnStateTransfer() () #71 0x0000000101476a36 in nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*) () #72 0x000000010147765f in non-virtual thunk to nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*) () #73 0x0000000104a3bad0 in nsInputStreamReadyEvent::Run() () #74 0x0000000104a6ea65 in nsThread::ProcessNextEvent(bool, bool*) () #75 0x00000001049caf3c in NS_ProcessPendingEvents_P(nsIThread*, unsigned int) () #76 0x00000001035fd5cf in nsBaseAppShell::NativeEventCallback() () #77 0x00000001035898dc in nsAppShell::ProcessGeckoEvents(void*) ()
Irving, can you file a new bug for that?
No longer blocks: 845205
WFM on trunk (along with bug 738190?)
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: