Closed Bug 1676970 Opened 4 years ago Closed 3 years ago

Assertion failure: !aRootNode || aNotInsertedYet || (aStartBoundary.Container()->IsInclusiveDescendantOf(aRootNode) && aEndBoundary.Container()->IsInclusiveDescendantOf(aRootNode) && ... (Wrong root), at src/dom/base/nsRange.cpp:855

Categories

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

defect

Tracking

()

VERIFIED FIXED
87 Branch
Tracking Status
firefox-esr78 --- wontfix
firefox84 --- wontfix
firefox85 --- wontfix
firefox86 --- wontfix
firefox87 --- verified

People

(Reporter: tsmith, Assigned: saschanaz)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase, Whiteboard: [bugmon:bisected,confirmed])

Attachments

(2 files)

Attached file testcase.html

Assertion failure: !aRootNode || aNotInsertedYet || (aStartBoundary.Container()->IsInclusiveDescendantOf(aRootNode) && aEndBoundary.Container()->IsInclusiveDescendantOf(aRootNode) && aRootNode == RangeUtils::ComputeRootNode(aStartBoundary.Container()) && aRootNode == RangeUtils::ComputeRootNode(aEndBoundary.Container())) (Wrong root), at src/dom/base/nsRange.cpp:855

#0 0x7f7da2ecd8ab in void nsRange::DoSetRange<nsCOMPtr<nsINode>, nsCOMPtr<nsIContent>, nsCOMPtr<nsINode>, nsCOMPtr<nsIContent> >(mozilla::RangeBoundaryBase<nsCOMPtr<nsINode>, nsCOMPtr<nsIContent> > const&, mozilla::RangeBoundaryBase<nsCOMPtr<nsINode>, nsCOMPtr<nsIContent> > const&, nsINode*, bool) src/dom/base/nsRange.cpp:848:3
#1 0x7f7da2ed6432 in nsRange::CloneRange() const src/dom/base/nsRange.cpp:2212:10
#2 0x7f7da2dde509 in mozilla::dom::Selection::Extend(nsINode&, unsigned int, mozilla::ErrorResult&) src/dom/base/Selection.cpp:2398:46
#3 0x7f7da2dde33c in mozilla::dom::Selection::ExtendJS(nsINode&, unsigned int, mozilla::ErrorResult&) src/dom/base/Selection.cpp:2325:3
#4 0x7f7da371eb06 in mozilla::dom::Selection_Binding::extend(JSContext*, JS::Handle<JSObject*>, void*, JSJitMethodCallArgs const&) /builds/worker/workspace/obj-build/dom/bindings/SelectionBinding.cpp:776:24
#5 0x7f7da40696ea in bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*) src/dom/bindings/BindingUtils.cpp:3229:13
#6 0x7f7da7007071 in CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&) src/js/src/vm/Interpreter.cpp:507:13
#7 0x7f7da70067a8 in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) src/js/src/vm/Interpreter.cpp:599:12
#8 0x7f7da7008353 in InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) src/js/src/vm/Interpreter.cpp:664:10
#9 0x7f7da6ffc053 in CallFromStack src/js/src/vm/Interpreter.cpp:668:10
#10 0x7f7da6ffc053 in Interpret(JSContext*, js::RunState&) src/js/src/vm/Interpreter.cpp:3337:16
#11 0x7f7da6ff2f84 in js::RunScript(JSContext*, js::RunState&) src/js/src/vm/Interpreter.cpp:477:13
#12 0x7f7da7006779 in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) src/js/src/vm/Interpreter.cpp:636:13
#13 0x7f7da7008353 in InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) src/js/src/vm/Interpreter.cpp:664:10
#14 0x7f7da700858f in js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) src/js/src/vm/Interpreter.cpp:681:8
#15 0x7f7da75ecf1b in JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) src/js/src/jsapi.cpp:2830:10
#16 0x7f7da3d9a14c in mozilla::dom::EventListener::HandleEvent(mozilla::dom::BindingCallContext&, JS::Handle<JS::Value>, mozilla::dom::Event&, mozilla::ErrorResult&) /builds/worker/workspace/obj-build/dom/bindings/EventListenerBinding.cpp:57:8
#17 0x7f7da43fe046 in void mozilla::dom::EventListener::HandleEvent<mozilla::dom::EventTarget*>(mozilla::dom::EventTarget* const&, mozilla::dom::Event&, mozilla::ErrorResult&, char const*, mozilla::dom::CallbackObject::ExceptionHandling, JS::Realm*) /builds/worker/workspace/obj-build/dist/include/mozilla/dom/EventListenerBinding.h:66:12
#18 0x7f7da43fdd8d in mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener*, mozilla::dom::Event*, mozilla::dom::EventTarget*) src/dom/events/EventListenerManager.cpp:1073:43
#19 0x7f7da43fea32 in mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event**, mozilla::dom::EventTarget*, nsEventStatus*, bool) src/dom/events/EventListenerManager.cpp:1270:17
#20 0x7f7da43f3d02 in HandleEvent /builds/worker/workspace/obj-build/dist/include/mozilla/EventListenerManager.h:354:5
#21 0x7f7da43f3d02 in mozilla::EventTargetChainItem::HandleEvent(mozilla::EventChainPostVisitor&, mozilla::ELMCreationDetector&) src/dom/events/EventDispatcher.cpp:352:17
#22 0x7f7da43f3475 in mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&) src/dom/events/EventDispatcher.cpp:590:14
#23 0x7f7da43f5dc0 in mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget*>*) src/dom/events/EventDispatcher.cpp:1093:11
#24 0x7f7da43f8a06 in mozilla::EventDispatcher::DispatchDOMEvent(nsISupports*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsPresContext*, nsEventStatus*) src/dom/events/EventDispatcher.cpp
#25 0x7f7da2e98143 in nsINode::DispatchEvent(mozilla::dom::Event&, mozilla::dom::CallerType, mozilla::ErrorResult&) src/dom/base/nsINode.cpp:1315:17
#26 0x7f7da4404332 in mozilla::dom::EventTarget::DispatchEvent(mozilla::dom::Event&) src/dom/events/EventTarget.cpp:177:13
#27 0x7f7da43c51dc in mozilla::AsyncEventDispatcher::Run() src/dom/events/AsyncEventDispatcher.cpp:69:12
#28 0x7f7da2ba44a7 in nsContentUtils::RemoveScriptBlocker() src/dom/base/nsContentUtils.cpp:5437:15
#29 0x7f7da2d113e2 in mozilla::dom::Document::EndUpdate() src/dom/base/Document.cpp:7284:3
#30 0x7f7da2d493b5 in ~mozAutoDocUpdate src/dom/base/mozAutoDocUpdate.h:34:18
#31 0x7f7da2d493b5 in mozilla::dom::Element::SetAttr(int, nsAtom*, nsAtom*, nsTSubstring<char16_t> const&, nsIPrincipal*, bool) src/dom/base/Element.cpp:2276:1
#32 0x7f7da2d49030 in SetAttr /builds/worker/workspace/obj-build/dist/include/mozilla/dom/Element.h:894:12
#33 0x7f7da2d49030 in mozilla::dom::Element::SetAttribute(nsTSubstring<char16_t> const&, nsTSubstring<char16_t> const&, nsIPrincipal*, mozilla::ErrorResult&) src/dom/base/Element.cpp:1340:14
#34 0x7f7da3d62a50 in mozilla::dom::Element_Binding::setAttribute(JSContext*, JS::Handle<JSObject*>, void*, JSJitMethodCallArgs const&) /builds/worker/workspace/obj-build/dom/bindings/ElementBinding.cpp:1347:24
#35 0x7f7da40696ea in bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*) src/dom/bindings/BindingUtils.cpp:3229:13
#36 0x7f7da7007071 in CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&) src/js/src/vm/Interpreter.cpp:507:13
#37 0x7f7da70067a8 in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) src/js/src/vm/Interpreter.cpp:599:12
#38 0x7f7da7008353 in InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) src/js/src/vm/Interpreter.cpp:664:10
#39 0x7f7da6ffc053 in CallFromStack src/js/src/vm/Interpreter.cpp:668:10
#40 0x7f7da6ffc053 in Interpret(JSContext*, js::RunState&) src/js/src/vm/Interpreter.cpp:3337:16
#41 0x7f7da6ff2f84 in js::RunScript(JSContext*, js::RunState&) src/js/src/vm/Interpreter.cpp:477:13
#42 0x7f7da7006779 in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) src/js/src/vm/Interpreter.cpp:636:13
#43 0x7f7da7008353 in InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) src/js/src/vm/Interpreter.cpp:664:10
#44 0x7f7da700858f in js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) src/js/src/vm/Interpreter.cpp:681:8
#45 0x7f7da75ecf1b in JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) src/js/src/jsapi.cpp:2830:10
#46 0x7f7da3d985b3 in mozilla::dom::EventHandlerNonNull::Call(mozilla::dom::BindingCallContext&, JS::Handle<JS::Value>, mozilla::dom::Event&, JS::MutableHandle<JS::Value>, mozilla::ErrorResult&) /builds/worker/workspace/obj-build/dom/bindings/EventHandlerBinding.cpp:278:37
#47 0x7f7da441bcf1 in void mozilla::dom::EventHandlerNonNull::Call<nsCOMPtr<mozilla::dom::EventTarget> >(nsCOMPtr<mozilla::dom::EventTarget> const&, mozilla::dom::Event&, JS::MutableHandle<JS::Value>, mozilla::ErrorResult&, char const*, mozilla::dom::CallbackObject::ExceptionHandling, JS::Realm*) /builds/worker/workspace/obj-build/dist/include/mozilla/dom/EventHandlerBinding.h:367:12
#48 0x7f7da441adb3 in mozilla::JSEventHandler::HandleEvent(mozilla::dom::Event*) src/dom/events/JSEventHandler.cpp:201:12
#49 0x7f7da43fddce in mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener*, mozilla::dom::Event*, mozilla::dom::EventTarget*) src/dom/events/EventListenerManager.cpp:1079:22
#50 0x7f7da43fea32 in mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event**, mozilla::dom::EventTarget*, nsEventStatus*, bool) src/dom/events/EventListenerManager.cpp:1270:17
#51 0x7f7da43f3d02 in HandleEvent /builds/worker/workspace/obj-build/dist/include/mozilla/EventListenerManager.h:354:5
#52 0x7f7da43f3d02 in mozilla::EventTargetChainItem::HandleEvent(mozilla::EventChainPostVisitor&, mozilla::ELMCreationDetector&) src/dom/events/EventDispatcher.cpp:352:17
#53 0x7f7da43f32b3 in mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&) src/dom/events/EventDispatcher.cpp:554:16
#54 0x7f7da43f5dc0 in mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget*>*) src/dom/events/EventDispatcher.cpp:1093:11
#55 0x7f7da5a0e8f7 in nsDocumentViewer::LoadComplete(nsresult) src/layout/base/nsDocumentViewer.cpp:1095:7
#56 0x7f7da69cd1b1 in nsDocShell::EndPageLoad(nsIWebProgress*, nsIChannel*, nsresult) src/docshell/base/nsDocShell.cpp:6408:20
#57 0x7f7da69ccb9a in nsDocShell::OnStateChange(nsIWebProgress*, nsIRequest*, unsigned int, nsresult) src/docshell/base/nsDocShell.cpp:5761:7
#58 0x7f7da69cda8f in non-virtual thunk to nsDocShell::OnStateChange(nsIWebProgress*, nsIRequest*, unsigned int, nsresult) src/docshell/base/nsDocShell.cpp
#59 0x7f7da235c4cc in nsDocLoader::DoFireOnStateChange(nsIWebProgress*, nsIRequest*, int&, nsresult) src/uriloader/base/nsDocLoader.cpp:1348:3
#60 0x7f7da235ba7a in nsDocLoader::doStopDocumentLoad(nsIRequest*, nsresult) src/uriloader/base/nsDocLoader.cpp:954:14
#61 0x7f7da2359e0c in nsDocLoader::DocLoaderIsEmpty(bool, mozilla::Maybe<nsresult> const&) src/uriloader/base/nsDocLoader.cpp:757:9
#62 0x7f7da235aebd in nsDocLoader::OnStopRequest(nsIRequest*, nsresult) src/uriloader/base/nsDocLoader.cpp:640:5
#63 0x7f7da235b69c in non-virtual thunk to nsDocLoader::OnStopRequest(nsIRequest*, nsresult) src/uriloader/base/nsDocLoader.cpp
#64 0x7f7da12e5856 in mozilla::net::nsLoadGroup::NotifyRemovalObservers(nsIRequest*, nsresult) src/netwerk/base/nsLoadGroup.cpp:615:22
#65 0x7f7da12e6d63 in mozilla::net::nsLoadGroup::RemoveRequest(nsIRequest*, nsISupports*, nsresult) src/netwerk/base/nsLoadGroup.cpp:522:10
#66 0x7f7da2ac1f28 in imgRequestProxy::RemoveFromLoadGroup() src/image/imgRequestProxy.cpp:370:15
#67 0x7f7da2ac7f38 in imgRequestProxy::OnLoadComplete(bool) src/image/imgRequestProxy.cpp:1003:7
#68 0x7f7da2a9b6aa in operator() src/image/ProgressTracker.cpp:351:13
#69 0x7f7da2a9b6aa in void mozilla::image::ImageObserverNotifier<mozilla::image::ObserverTable const*>::operator()<void mozilla::image::SyncNotifyInternal<mozilla::image::ObserverTable const*>(mozilla::image::ObserverTable const* const&, bool, unsigned int, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&)::'lambda5'(mozilla::image::IProgressObserver*)>(mozilla::image::ObserverTable const*) src/image/ProgressTracker.cpp:281:9
#70 0x7f7da2a9a1d0 in void mozilla::image::SyncNotifyInternal<mozilla::image::ObserverTable const*>(mozilla::image::ObserverTable const* const&, bool, unsigned int, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&) src/image/ProgressTracker.cpp:350:5
#71 0x7f7da2a5bf26 in operator() src/image/ProgressTracker.cpp:369:5
#72 0x7f7da2a5bf26 in Read<(lambda at src/image/ProgressTracker.cpp:368:19)> src/image/CopyOnWrite.h:155:12
#73 0x7f7da2a5bf26 in mozilla::image::ProgressTracker::SyncNotifyProgress(unsigned int, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&) src/image/ProgressTracker.cpp:368:14
#74 0x7f7da2a8723b in mozilla::image::VectorImage::OnSVGDocumentLoaded() src/image/VectorImage.cpp:1443:23
#75 0x7f7da2a8e8cf in mozilla::image::SVGLoadEventListener::HandleEvent(mozilla::dom::Event*) src/image/VectorImage.cpp:208:13
#76 0x7f7da43fddce in mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener*, mozilla::dom::Event*, mozilla::dom::EventTarget*) src/dom/events/EventListenerManager.cpp:1079:22
#77 0x7f7da43fea32 in mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event**, mozilla::dom::EventTarget*, nsEventStatus*, bool) src/dom/events/EventListenerManager.cpp:1270:17
#78 0x7f7da43f3d02 in HandleEvent /builds/worker/workspace/obj-build/dist/include/mozilla/EventListenerManager.h:354:5
#79 0x7f7da43f3d02 in mozilla::EventTargetChainItem::HandleEvent(mozilla::EventChainPostVisitor&, mozilla::ELMCreationDetector&) src/dom/events/EventDispatcher.cpp:352:17
#80 0x7f7da43f32b3 in mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&) src/dom/events/EventDispatcher.cpp:554:16
#81 0x7f7da43f5dc0 in mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget*>*) src/dom/events/EventDispatcher.cpp:1093:11
#82 0x7f7da43f8a06 in mozilla::EventDispatcher::DispatchDOMEvent(nsISupports*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsPresContext*, nsEventStatus*) src/dom/events/EventDispatcher.cpp
#83 0x7f7da2e98143 in nsINode::DispatchEvent(mozilla::dom::Event&, mozilla::dom::CallerType, mozilla::ErrorResult&) src/dom/base/nsINode.cpp:1315:17
#84 0x7f7da4404332 in mozilla::dom::EventTarget::DispatchEvent(mozilla::dom::Event&) src/dom/events/EventTarget.cpp:177:13
#85 0x7f7da43c51dc in mozilla::AsyncEventDispatcher::Run() src/dom/events/AsyncEventDispatcher.cpp:69:12
#86 0x7f7da115279f in mozilla::RunnableTask::Run() src/xpcom/threads/TaskController.cpp:450:16
#87 0x7f7da1150e0a in mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) src/xpcom/threads/TaskController.cpp:720:26
#88 0x7f7da114feb4 in mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) src/xpcom/threads/TaskController.cpp:579:15
#89 0x7f7da1150067 in mozilla::TaskController::ProcessPendingMTTask(bool) src/xpcom/threads/TaskController.cpp:373:36
#90 0x7f7da1155ff6 in operator() src/xpcom/threads/TaskController.cpp:120:37
#91 0x7f7da1155ff6 in mozilla::detail::RunnableFunction<mozilla::TaskController::InitializeInternal()::$_3>::Run() /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:577:5
#92 0x7f7da1167577 in nsThread::ProcessNextEvent(bool, bool*) src/xpcom/threads/nsThread.cpp:1197:14
#93 0x7f7da116d2ba in NS_ProcessNextEvent(nsIThread*, bool) src/xpcom/threads/nsThreadUtils.cpp:513:10
#94 0x7f7da1a5aaf6 in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:87:21
#95 0x7f7da19ccbd3 in MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:334:10
#96 0x7f7da19ccaed in RunHandler src/ipc/chromium/src/base/message_loop.cc:327:3
#97 0x7f7da19ccaed in MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:309:3
#98 0x7f7da56c3028 in nsBaseAppShell::Run() src/widget/nsBaseAppShell.cpp:137:27
#99 0x7f7da6ecc353 in XRE_RunAppShell() src/toolkit/xre/nsEmbedFunctions.cpp:913:20
#100 0x7f7da1a5b8b9 in mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:237:9
#101 0x7f7da19ccbd3 in MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:334:10
#102 0x7f7da19ccaed in RunHandler src/ipc/chromium/src/base/message_loop.cc:327:3
#103 0x7f7da19ccaed in MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:309:3
#104 0x7f7da6ecbf38 in XRE_InitChildProcess(int, char**, XREChildData const*) src/toolkit/xre/nsEmbedFunctions.cpp:744:34
#105 0x55a6899f4a27 in content_process_main src/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28
#106 0x55a6899f4a27 in main src/browser/app/nsBrowserApp.cpp:304:18
Flags: in-testsuite?

A Pernosco session is available here: https://pernos.co/debug/RroHpaoJy2frGJnAdq9f9A/index.html

Bugmon Analysis:
Verified bug as reproducible on mozilla-central 20201112212842-ae9fd948eeab.
Failed to bisect testcase (Start build crashes!):

Start: 1e1617c67238dfb685fb3d07bf1793232c4469fa (20191115095319)
End: cadd17ae918b22f2b2d3db0d78137ebbb7544f64 (20201112033232)
BuildFlags: BuildFlags(asan=False, tsan=False, debug=True, fuzzing=False, coverage=False, valgrind=False)

Whiteboard: [bugmon:bisected,confirmed]

Hi Masayuki, the assert might have to do with bug 1612085 or bug 1444847 ?

Flags: needinfo?(masayuki)

Looks like that selection is moved into native anonymous node in <option> and that causes hitting the assertion.

Severity: -- → S3
Flags: needinfo?(masayuki) → needinfo?(krosylight)
Priority: -- → P3
  1. The block frame of the parent <option> has NS_FRAME_INDEPENDENT_SELECTION and thus SelectionDescendToKids returns true for nsTextControlFrame of <textarea>
  2. Thus nsIFrame::DrillDownToSelectionFrame drills down to the internal of textarea and returns BRFrame
  3. Which can disappear without calling mutation observers, thus a mess

It seems SelectionDescendToKids() is solely for preventing this issue, but the testcase fulfills "unless we're already inside such a frame" condition and thus it didn't work.

Assignee: nobody → krosylight
Flags: needinfo?(krosylight)

The test causes several editor related warnings:

[task 2021-01-29T01:16:15.836Z] 01:16:15     INFO - REFTEST TEST-START | layout/generic/crashtests/1676970.html
[task 2021-01-29T01:16:15.836Z] 01:16:15     INFO - REFTEST TEST-LOAD | file:///Users/cltbld/tasks/task_1611880498/build/tests/reftest/tests/layout/generic/crashtests/1676970.html | 2861 / 3881 (73%)
[task 2021-01-29T01:16:15.841Z] 01:16:15     INFO - [Child 1573, Main Thread] WARNING: '!aChild->IsContent()', file /builds/worker/workspace/obj-build/dist/include/mozilla/EditorDOMPoint.h:448
[task 2021-01-29T01:16:15.842Z] 01:16:15     INFO - [Child 1573, Main Thread] WARNING: '!mSelection', file /builds/worker/checkouts/gecko/editor/libeditor/EditorBase.cpp:5168
[task 2021-01-29T01:16:15.842Z] 01:16:15     INFO - [Child 1573, Main Thread] WARNING: '!editActionData.CanHandle()', file /builds/worker/workspace/obj-build/dist/include/mozilla/TextEditor.h:311
[task 2021-01-29T01:16:15.842Z] 01:16:15     INFO - [Child 1573, Main Thread] WARNING: Failed to get value: 'NS_SUCCEEDED(rv)', file /builds/worker/checkouts/gecko/dom/html/TextControlState.cpp:2555
[task 2021-01-29T01:16:15.842Z] 01:16:15     INFO - [Child 1573, Main Thread] WARNING: '!editingHost', file /builds/worker/checkouts/gecko/editor/libeditor/HTMLEditSubActionHandler.cpp:5713
[task 2021-01-29T01:16:15.843Z] 01:16:15     INFO - [Child 1573, Main Thread] WARNING: '!GetActiveEditingHost()', file /builds/worker/checkouts/gecko/editor/libeditor/HTMLEditor.cpp:5022
[task 2021-01-29T01:16:15.843Z] 01:16:15     INFO - [Child 1573, Main Thread] WARNING: '!GetActiveEditingHost()', file /builds/worker/checkouts/gecko/editor/libeditor/HTMLEditor.cpp:5022
[task 2021-01-29T01:16:15.843Z] 01:16:15     INFO - [Child 1573, Main Thread] WARNING: '!root', file /builds/worker/checkouts/gecko/editor/libeditor/EditorBase.cpp:3034
[task 2021-01-29T01:16:15.843Z] 01:16:15     INFO - [Child 1573, Main Thread] WARNING: '!root', file /builds/worker/checkouts/gecko/editor/libeditor/EditorBase.cpp:3034
[task 2021-01-29T01:16:15.843Z] 01:16:15     INFO - [Child 1573, Main Thread] WARNING: '!root', file /builds/worker/checkouts/gecko/editor/libeditor/EditorBase.cpp:3034
[task 2021-01-29T01:16:15.843Z] 01:16:15     INFO - [Child 1573, Main Thread] WARNING: '!mSelection', file /builds/worker/checkouts/gecko/editor/libeditor/EditorBase.cpp:5168
[task 2021-01-29T01:16:15.844Z] 01:16:15     INFO - [Child 1573, Main Thread] WARNING: '!editActionData.CanHandle()', file /builds/worker/workspace/obj-build/dist/include/mozilla/TextEditor.h:311
[task 2021-01-29T01:16:15.844Z] 01:16:15     INFO - [Child 1573, Main Thread] WARNING: Failed to get value: 'NS_SUCCEEDED(rv)', file /builds/worker/checkouts/gecko/dom/html/TextControlState.cpp:2555
[task 2021-01-29T01:16:16.631Z] 01:16:16     INFO - REFTEST TEST-PASS | layout/generic/crashtests/1676970.html | (LOAD ONLY)
[task 2021-01-29T01:16:16.631Z] 01:16:16     INFO - REFTEST TEST-END | layout/generic/crashtests/1676970.html

I'll file a separate issue for this.

Pushed by krosylight@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ef183b029ab2
Always consider text controls has independent selection r=emilio
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 87 Branch

Bugmon Analysis:
Verified bug as fixed on rev mozilla-central 20210202033500-babdc3b3a300.
Removing bugmon keyword as no further action possible.
Please review the bug and re-add the keyword for further analysis.

Status: RESOLVED → VERIFIED
Keywords: bugmon
Flags: in-testsuite? → in-testsuite+

:saschanaz, since this bug contains a bisection range, could you fill (if possible) the regressed_by field?
For more information, please visit auto_nag documentation.

Flags: needinfo?(krosylight)

Failed to bisect testcase

This clearly says it does not have a range, the bot is faulty here. Hi bot managers, could you take a look?

Flags: needinfo?(smujahid)
Flags: needinfo?(mcastelluccio)
Flags: needinfo?(krosylight)
Flags: needinfo?(cdenizet)

Sorry, regression from a recent change (I blame Python's indentation: https://github.com/mozilla/relman-auto-nag/pull/1476).

Flags: needinfo?(smujahid)
Flags: needinfo?(mcastelluccio)
Flags: needinfo?(cdenizet)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: