Assertion failure: !OwnerDoc()->IsScrollingElement(this) (How can we have a scrollframe if we're the scrollingElement for our document?), at dom/base/Element.cpp:682
Categories
(Core :: Layout, defect)
Tracking
()
People
(Reporter: bc, Assigned: emilio)
References
()
Details
(Keywords: assertion, reproducible)
Attachments
(2 files)
-
Assert Nightly Linux/Windows. Reproduced on Firefox 69.0.2 on Linux.
Assertion failure: !OwnerDoc()->IsScrollingElement(this) (How can we have a scrollframe if we're the scrollingElement for our document?), at z:/build/build/src/dom/base/Element.cpp:682
#01: static bool mozilla::dom::Element_Binding::get_clientWidth(struct JSContext *, class JS::Handle<JSObject *>, class mozilla::dom::Element *, class JSJitGetterCallArgs) [s3:gecko-generated-sources:51a14dfd514674defbc9a9ff0267ed73aadb212a931115b4a0d8b6352f2b60a953a1bb113d8992f8f3e58c2c3c18224eef8e1a7fd7f9668e0ca0c98492134cc7/dom/bindings/ElementBinding.cpp::3633]
#02: mozilla::dom::binding_detail::GenericGetter<mozilla::dom::binding_detail::NormalThisPolicy,mozilla::dom::binding_detail::ThrowExceptions>(JSContext *,unsigned int,JS::Value *) [dom/bindings/BindingUtils.cpp:3134]
#03: CallJSNative(JSContext *,bool (*)(JSContext *,unsigned int,JS::Value *),js::CallReason,JS::CallArgs const &) [js/src/vm/Interpreter.cpp:458]
#04: js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct,js::CallReason) [js/src/vm/Interpreter.cpp:551]
#05: static bool InternalCall(struct JSContext *, const class js::AnyInvokeArgs & const, js::CallReason) [js/src/vm/Interpreter.cpp:620]
#06: js::CallGetter(JSContext *,JS::Handle<JS::Value>,JS::Handle<JS::Value>,JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:761]
#07: static bool GetExistingProperty<js::CanGC>(struct JSContext *, class JS::Handle<JS::Value>, class JS::Handle<js::NativeObject *>, class JS::Handle<js::Shape *>, class JS::MutableHandle<JS::Value>) [js/src/vm/NativeObject.cpp:2321]
#08: static bool NativeGetPropertyInline<js::CanGC>(struct JSContext *, class JS::Handle<js::NativeObject *>, class JS::Handle<JS::Value>, class JS::Handle<JS::PropertyKey>, IsNameLookup, class JS::MutableHandle<JS::Value>) [js/src/vm/NativeObject.cpp:2581]
#09: js::NativeGetProperty(JSContext *,JS::Handle<js::NativeObject *>,JS::Handle<JS::Value>,JS::Handle<JS::PropertyKey>,JS::MutableHandle<JS::Value>) [js/src/vm/NativeObject.cpp:2618]
#10: js::GetProperty(JSContext *,JS::Handle<JSObject *>,JS::Handle<JS::Value>,js::PropertyName *,JS::MutableHandle<JS::Value>) [js/src/vm/ObjectOperations-inl.h:124]
#11: js::GetProperty(JSContext *,JS::Handle<JS::Value>,JS::Handle<js::PropertyName *>,JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:4542]
#12: static bool Interpret(struct JSContext *, class js::RunState & const) [js/src/vm/Interpreter.cpp:2798]
#13: js::RunScript(JSContext *,js::RunState &) [js/src/vm/Interpreter.cpp:424]
#14: js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct,js::CallReason) [js/src/vm/Interpreter.cpp:592]
#15: static bool InternalCall(struct JSContext *, const class js::AnyInvokeArgs & const, js::CallReason) [js/src/vm/Interpreter.cpp:620]
#16: js::Call(JSContext *,JS::Handle<JS::Value>,JS::Handle<JS::Value>,js::AnyInvokeArgs const &,JS::MutableHandle<JS::Value>,js::CallReason) [js/src/vm/Interpreter.cpp:637]
#17: js::fun_apply(JSContext *,unsigned int,JS::Value *) [js/src/vm/JSFunction.cpp:1184]
#18: CallJSNative(JSContext *,bool (*)(JSContext *,unsigned int,JS::Value *),js::CallReason,JS::CallArgs const &) [js/src/vm/Interpreter.cpp:458]
#19: js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct,js::CallReason) [js/src/vm/Interpreter.cpp:551]
#20: static bool InternalCall(struct JSContext *, const class js::AnyInvokeArgs & const, js::CallReason) [js/src/vm/Interpreter.cpp:620]
#21: static bool Interpret(struct JSContext *, class js::RunState & const) [js/src/vm/Interpreter.cpp:0]
#22: js::RunScript(JSContext *,js::RunState &) [js/src/vm/Interpreter.cpp:424]
#23: js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct,js::CallReason) [js/src/vm/Interpreter.cpp:592]
#24: static bool InternalCall(struct JSContext *, const class js::AnyInvokeArgs & const, js::CallReason) [js/src/vm/Interpreter.cpp:620]
#25: js::Call(JSContext *,JS::Handle<JS::Value>,JS::Handle<JS::Value>,js::AnyInvokeArgs const &,JS::MutableHandle<JS::Value>,js::CallReason) [js/src/vm/Interpreter.cpp:637]
#26: js::fun_apply(JSContext *,unsigned int,JS::Value *) [js/src/vm/JSFunction.cpp:1184]
#27: CallJSNative(JSContext *,bool (*)(JSContext *,unsigned int,JS::Value *),js::CallReason,JS::CallArgs const &) [js/src/vm/Interpreter.cpp:458]
#28: js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct,js::CallReason) [js/src/vm/Interpreter.cpp:551]
#29: static bool InternalCall(struct JSContext *, const class js::AnyInvokeArgs & const, js::CallReason) [js/src/vm/Interpreter.cpp:620]
#30: static bool Interpret(struct JSContext *, class js::RunState & const) [js/src/vm/Interpreter.cpp:0]
#31: js::RunScript(JSContext *,js::RunState &) [js/src/vm/Interpreter.cpp:424]
#32: js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct,js::CallReason) [js/src/vm/Interpreter.cpp:592]
#33: static bool InternalCall(struct JSContext *, const class js::AnyInvokeArgs & const, js::CallReason) [js/src/vm/Interpreter.cpp:620]
#34: js::Call(JSContext *,JS::Handle<JS::Value>,JS::Handle<JS::Value>,js::AnyInvokeArgs const &,JS::MutableHandle<JS::Value>,js::CallReason) [js/src/vm/Interpreter.cpp:637]
#35: js::jit::InvokeFunction(JSContext *,JS::Handle<JSObject *>,bool,bool,unsigned int,JS::Value *,JS::MutableHandle<JS::Value>) [js/src/jit/VMFunctions.cpp:260]
#36: js::jit::InvokeFromInterpreterStub(JSContext *,js::jit::InterpreterStubExitFrameLayout *) [js/src/jit/VMFunctions.cpp:289]
#37: ??? (???:???)
Assignee | ||
Comment 1•5 years ago
|
||
[wrong bug]
Updated•5 years ago
|
Assignee | ||
Comment 2•5 years ago
|
||
I cannot repro anymore, looks like, can you confirm?
Reporter | ||
Comment 3•5 years ago
|
||
I was just able to reproduce using 20191013093601 Nightly on Fedora 30 twice in a row by just loading the url from the command line. Starting the browser and pasting the url into the urlbar also worked for me.
Assertion failure: !OwnerDoc()->IsScrollingElement(this) (How can we have a scrollframe if we're the scrollingElement for our document?), at /builds/worker/workspace/build/src/dom/base/Element.cpp:576
#01: mozilla::dom::Element::GetClientAreaRect() (/home/bclary/mozilla/builds/nightly/mozilla/firefox-debug/dist/bin/libxul.so)
#02: mozilla::dom::Element::ClientWidth() (/home/bclary/mozilla/builds/nightly/mozilla/firefox-debug/dist/bin/libxul.so)
#03: mozilla::dom::Element_Binding::get_clientWidth(JSContext*, JS::Handle<JSObject*>, mozilla::dom::Element*, JSJitGetterCallArgs) (/home/bclary/mozilla/builds/nightly/mozilla/firefox-debug/dist/bin/libxul.so)
#04: bool mozilla::dom::binding_detail::GenericGetter<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*) (/home/bclary/mozilla/builds/nightly/mozilla/firefox-debug/dist/bin/libxul.so)
#05: CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&) (/home/bclary/mozilla/builds/nightly/mozilla/firefox-debug/dist/bin/libxul.so)
#06: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) (/home/bclary/mozilla/builds/nightly/mozilla/firefox-debug/dist/bin/libxul.so)
#07: js::CallGetter(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>) (/home/bclary/mozilla/builds/nightly/mozilla/firefox-debug/dist/bin/libxul.so)
#08: 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) (/home/bclary/mozilla/builds/nightly/mozilla/firefox-debug/dist/bin/libxul.so)
#09: bool NativeGetPropertyInline<(js::AllowGC)1>(JSContext*, js::MaybeRooted<js::NativeObject*, (js::AllowGC)1>::HandleType, js::MaybeRooted<JS::Value, (js::AllowGC)1>::HandleType, js::MaybeRooted<JS::PropertyKey, (js::AllowGC)1>::HandleType, IsNameLookup, js::MaybeRooted<JS::Value, (js::AllowGC)1>::MutableHandleType) (/home/bclary/mozilla/builds/nightly/mozilla/firefox-debug/dist/bin/libxul.so)
#10: js::GetProperty(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, js::PropertyName*, JS::MutableHandle<JS::Value>) (/home/bclary/mozilla/builds/nightly/mozilla/firefox-debug/dist/bin/libxul.so)
Assignee | ||
Comment 4•5 years ago
|
||
Hmm, maybe I didn't wait long enough? I'm on Fedora 31, on a local nightly build but...
Assignee | ||
Comment 5•5 years ago
|
||
Yeah, apparently I just had to wait more. Unoptimized builds, what a joy... Anyhow, I got it on rr now.
Assignee | ||
Comment 6•5 years ago
|
||
Assignee | ||
Comment 7•5 years ago
|
||
From https://drafts.csswg.org/css-overflow/#overflow-propagation:
UAs must apply the overflow-* values set on the root element to the viewport.
However, when the root element is an [HTML] html element (including XML syntax
for HTML) whose overflow value is visible (in both axes), and that element has
a body element as a child, user agents must instead apply the overflow-*
values of the first such child element to the viewport. The element from which
the value is propagated must then have a used overflow value of visible.
Comment 12•5 years ago
|
||
Comment 13•5 years ago
|
||
Assignee | ||
Updated•5 years ago
|
Comment 15•5 years ago
|
||
bugherder |
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Description
•