fix: Add guard to prevent invalid split drops, p=#12511

This commit is contained in:
Andrey Bochkarev
2026-02-25 22:37:53 +03:00
committed by GitHub
parent 5e27368a48
commit b92d697657

View File

@@ -683,6 +683,10 @@
const dt = event.dataTransfer;
const draggedTab = dt.mozGetDataAt(TAB_DROP_TYPE, 0);
if (!isTab(draggedTab)) {
return;
}
const dragData = draggedTab._dragData;
const movingTabsSet = dragData.movingTabsSet;
const dropElement = event.target.closest(".tabbrowser-tab");
@@ -771,6 +775,7 @@
}
this.#dragOverSplit.fakeTab = element;
this.#dragOverSplit.canDrop = true;
}
_clearDragOverSplit() {
@@ -782,6 +787,7 @@
this.#dragOverSplit.timer = null;
this.#dragOverSplit.fakeTab = null;
this.#dragOverSplit.data = null;
this.#dragOverSplit.canDrop = null;
}
handle_windowDragEnter(event) {
@@ -881,6 +887,10 @@
}
#handle_dropCreateSplit(event) {
if (!this.#dragOverSplit.canDrop) {
return;
}
const dragData = this.#dragOverSplit.data;
const dt = event.dataTransfer;
const draggedTab = dt.mozGetDataAt(TAB_DROP_TYPE, 0);
@@ -1118,7 +1128,7 @@
// eslint-disable-next-line complexity
#applyDragoverIndicator(event, dropElement, movingTabs, draggedTab) {
// Doesn't show indicator when dragOverSplit
if (this.#dragOverSplit.data) {
if (this.#dragOverSplit.canDrop) {
return;
}
const separation = 4;