Bug 1354782 - Re-use pinned tab width to avoid layout flush and invalidation loop in _positionPinnedTabs. r=florian

MozReview-Commit-ID: 98eGdDUXLm2

--HG--
extra : rebase_source : d454599f50aabbefd6144d7051cb293025e7e1ae
This commit is contained in:
Dão Gottwald 2017-04-08 09:17:03 +02:00
Родитель cac52d46df
Коммит c951251cca
1 изменённых файлов: 5 добавлений и 2 удалений

Просмотреть файл

@ -6075,16 +6075,19 @@
let scrollButtonWidth = this.mTabstrip._scrollButtonDown.getBoundingClientRect().width;
let paddingStart = this.mTabstrip.scrollboxPaddingStart;
let pinnedTabWidth;
let width = 0;
for (let i = numPinned - 1; i >= 0; i--) {
let tab = this.childNodes[i];
width += tab.getBoundingClientRect().width;
if (!pinnedTabWidth) {
pinnedTabWidth = tab.getBoundingClientRect().width;
}
width += pinnedTabWidth;
tab.style.marginInlineStart = -(width + scrollButtonWidth + paddingStart) + "px";
}
this.style.paddingInlineStart = width + paddingStart + "px";
} else {
this.removeAttribute("positionpinnedtabs");