mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-24 18:55:30 +00:00
7b600a0531
In the case where scroll-snap-type is specified for the scroll container, the scroll-padding is also factored into in ScrollFrameHelper::ComputeScrollSnapInfo which is called via ScrollFrameHelper::ScrollToWithOrigin. It doesn't double the scroll-padding value, but it's actually redundant, we should avoid it. We could separate the functionality of ScrollToWithOrigin, one is to scroll to a given element, the other is to scroll to a given position. The former will be used for Element.scrollIntoElement and relevant stuff, the latter will be used for Element.scrollTo and relevant stuff. That's being said, as of now, we have still the old scroll snap implementation, so the separation will introduce complexity, the separation should be done once after the old implementation removed. There are 9 call sites of nsIPresShell::ScrollContentIntoView: nsIPresShell::GoToAnchor nsIPresShell::ScrollToAnchor Element::ScrollIntoView We definitely needs scroll-padding and scroll-margin for these functions. nsCoreUtils::ScrollTo This is used for Accesible::ScrollTo which scrolls to a given accesible node, probably we should behave as what Element::ScrollIntoView does. Accessible::DispatchClickEvent Similar to the above, similated various mouse events on a given target node. PresShell::EventHandler::PrepareToUseCaretPosition PresShell::EventHandler::GetCurrentItemAndPositionForElement Both are for context menu, we shouldn't consider scroll-padding and scroll-margin. nsFormFillController::SetPopupOpen This is used for autocompletion popup, we shouldn't consider scroll-padding and scroll-margin. nsFocusManager::ScrollIntoView This is bit unfortunate, we should use scroll-padding and scroll-margin depending on call site of this function. Bug 1535232 is for this case. cssom-view/scrollIntoView-scrollPadding.html which has some tests that is actually testing scroll-padding with scrollIntoView passes with this change. The reftest in this change is a test case that the browser navigates to an element with specifying the anchor to the element. Differential Revision: https://phabricator.services.mozilla.com/D23084 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
crashtests | ||
test | ||
moz.build | ||
nsButtonFrameRenderer.cpp | ||
nsButtonFrameRenderer.h | ||
nsCheckboxRadioFrame.cpp | ||
nsCheckboxRadioFrame.h | ||
nsColorControlFrame.cpp | ||
nsColorControlFrame.h | ||
nsComboboxControlFrame.cpp | ||
nsComboboxControlFrame.h | ||
nsDateTimeControlFrame.cpp | ||
nsDateTimeControlFrame.h | ||
nsFieldSetFrame.cpp | ||
nsFieldSetFrame.h | ||
nsFileControlFrame.cpp | ||
nsFileControlFrame.h | ||
nsGfxButtonControlFrame.cpp | ||
nsGfxButtonControlFrame.h | ||
nsHTMLButtonControlFrame.cpp | ||
nsHTMLButtonControlFrame.h | ||
nsIFormControlFrame.h | ||
nsImageControlFrame.cpp | ||
nsISelectControlFrame.h | ||
nsITextControlFrame.h | ||
nsLegendFrame.cpp | ||
nsLegendFrame.h | ||
nsListControlFrame.cpp | ||
nsListControlFrame.h | ||
nsMeterFrame.cpp | ||
nsMeterFrame.h | ||
nsNumberControlFrame.cpp | ||
nsNumberControlFrame.h | ||
nsProgressFrame.cpp | ||
nsProgressFrame.h | ||
nsRangeFrame.cpp | ||
nsRangeFrame.h | ||
nsSelectsAreaFrame.cpp | ||
nsSelectsAreaFrame.h | ||
nsTextControlFrame.cpp | ||
nsTextControlFrame.h |