gecko-dev/layout/generic
Kartikaya Gupta 4600f9a2b5 Bug 1292781 - Send scroll-position-restore updates to APZ, but don't allow them to clobber user scrolls. r=tnikkel
Previously we weren't sending scroll position updates with origin nsGkAtoms::restore
over to the APZ at all, on the assumption that they should never clobber an APZ
scroll offset. However, there are scenarios where that is not true.

In particular, during a frame reconstruction, a layers update may be sent to the
compositor between the time a scrollframe has RestoreState() called on it, and
the time the scrollframe has ScrollToRestoredPosition() called on it. The layers
update that happens during this interval (correctly) sends a scroll position of
(0,0), and forces the APZ to scroll to that position. This is necessary to
prevent APZ from remaining at an invalid scroll offset while the frame is still
being rebuilt.

However, once ScrollToRestoredPosition() is called and the old scroll offset is
restored, that restored scroll position needs to get sent to the APZ in order to
have it properly restore to the original scroll position. In order to do this,
the main thread must flag the metrics with a scroll offset update. Since the user
may have scrolled concurrently in the compositor from the (0,0) position, we also
need to check for that case in the APZ code and avoid restoring the scroll
position. This is equivalent to the corresponding main-thread code in
ScrollToRestoredPosition().

MozReview-Commit-ID: LxRapVSrsJ3
2016-08-24 09:15:29 -04:00
..
crashtests Merge autoland into mozilla-central; a=merge 2016-07-04 09:01:56 -07:00
test Backed out 2 changesets (bug 1198135) for e10s reftest assertion failures 2016-08-18 19:23:26 -07:00
AsyncScrollBase.cpp
AsyncScrollBase.h
BlockReflowInput.cpp Bug 1294628 - Replace block reflow input flags with a bit fields struct. r=dholbert 2016-08-12 15:28:45 +08:00
BlockReflowInput.h Bug 1294628 - Replace block reflow input flags with a bit fields struct. r=dholbert 2016-08-12 15:28:45 +08:00
broken-image.png
DetailsFrame.cpp Bug 1258657 Part 2 - Remove SummaryFrame. r=bz 2016-04-13 13:34:14 +08:00
DetailsFrame.h
folder.png
frame-graph.py
FrameChildList.cpp
FrameChildList.h
jar.mn
JustificationUtils.h Bug 1277775 - Replace MOZ_CONSTEXPR{_VAR,_TMPL} with constexpr. r=froydnj 2016-07-08 14:39:53 -07:00
loading-image.png
MathMLTextRunFactory.cpp Bug 1280887 - patch 2 - Make gfxTextRun refcounted, replace usage of UniquePtr<> with RefPtr<> for textruns, and make nsTextFrame hold a strong reference to its run(s). r=mats 2016-08-19 13:14:22 +01:00
MathMLTextRunFactory.h Bug 1283273 - Change nsAutoPtr to UniquePtr in classes within layout/generic. r=dholbert 2016-07-08 08:08:00 +02:00
moz.build Bug 1286877 - do not set c-basic-offset for python-mode; r=gps 2016-07-14 10:16:42 -06:00
nsAbsoluteContainingBlock.cpp Bug 1293384 - Part 2: Rename Snprintf.h header to Sprintf.h. r=froydnj 2016-08-14 23:43:21 -07:00
nsAbsoluteContainingBlock.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsAtomicContainerFrame.h
nsAutoCopyListener.h Bug 1261299 - Add new clipboard kSelectionCache to cache the current selection for OSX service menu. Add a constructor to nsAutoCopyListener which sets the clipboard to copy to. Pass in kSelectionCache for OSX or kSelectionClipboard for linux. r=mstange 2016-06-03 12:04:22 -04:00
nsBackdropFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsBackdropFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsBlockDebugFlags.h Bug 1275831 - part6: remove unused block layout debug flag. r=dholbert 2016-05-27 16:06:27 +08:00
nsBlockFrame.cpp Bug 1294628 - Replace block reflow input flags with a bit fields struct. r=dholbert 2016-08-12 15:28:45 +08:00
nsBlockFrame.h Bug 1290813 - Correctly number indirect descendants of <ol reversed>; r=xidorn 2016-08-01 15:54:25 +05:30
nsBlockReflowContext.cpp Bug 1277129 Part 7c - Rename various RS variables to RI. r=dbaron 2016-07-21 18:36:39 +08:00
nsBlockReflowContext.h Bug 1277129 Part 7c - Rename various RS variables to RI. r=dbaron 2016-07-21 18:36:39 +08:00
nsBRFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsBulletFrame.cpp Bug 1288992 Part 3 - Rename local variables named metrics to reflowOutput. r=dholbert 2016-07-26 17:10:52 +08:00
nsBulletFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsCanvasFrame.cpp Bug 1284837 - Disallow implicit conversions from float to integer when creating IntPoint and IntSize objects. r=botond 2016-07-26 16:48:30 +02:00
nsCanvasFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsColumnSetFrame.cpp Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj 2016-08-24 14:47:04 +08:00
nsColumnSetFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsContainerFrame.cpp Bug 1294918 - Fix spelling of method name nsIFrame::IsAbsPosContainingBlock. r=dholbert 2016-08-12 18:39:45 -07:00
nsContainerFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsDirection.h
nsFirstLetterFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsFirstLetterFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsFlexContainerFrame.cpp Bug 1293738 - Remove unneeded aWM arg from some FlexboxAxisTracker methods. r=dholbert, r=emilio 2016-08-12 05:43:06 +05:30
nsFlexContainerFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsFloatManager.cpp Bug 1293604 - Replace NS_STYLE_FLOAT_* with StyleFloat enum class. r=dbaron 2016-08-09 17:32:54 +08:00
nsFloatManager.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsFontInflationData.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsFontInflationData.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsFrame.cpp Bug 1200469 part 1 - Avoid using fallback cursor if from the same frame. r=tnikkel,smaug 2016-08-19 23:37:14 +10:00
nsFrame.h Backed out changeset ff84b85aa1cb (bug 1291667) for asserting at nsRuleNode.cpp:1322 and failing mochitests and reftests. r=backout 2016-08-10 12:59:15 +02:00
nsFrameIdList.h Bug 1277131 : Part 2 - rename nsMathMLmtableOuterFrame to nsMathMLmtableWrapperFrame. r=heycam 2016-06-16 13:14:50 +01:00
nsFrameList.cpp Bug 1295192 - part 1 - remove CPP_THROW_NEW on layout struct operator new overloads that forward to nsPresShell::AllocateByObjectID; r=dholbert 2016-08-17 15:28:45 -04:00
nsFrameList.h Bug 1295192 - part 1 - remove CPP_THROW_NEW on layout struct operator new overloads that forward to nsPresShell::AllocateByObjectID; r=dholbert 2016-08-17 15:28:45 -04:00
nsFrameSelection.h Bug 1261299 - Update the selection cache on repaint to handle when a pre-existing selection becomes active aka the current selection. r=smaug 2016-07-27 16:05:37 -04:00
nsFrameSetFrame.cpp Bug 1288992 Part 3 - Rename local variables named metrics to reflowOutput. r=dholbert 2016-07-26 17:10:52 +08:00
nsFrameSetFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsFrameState.cpp Bug 1144096 part 5 - [css-grid] Create a couple of Grid container frame bits. r=dholbert 2016-03-11 17:39:26 +01:00
nsFrameState.h Bug 1265624 - Remove unnecessary compiler version check for MSVS 2010 in nsFrameState.h. r=heycam 2016-04-17 17:09:32 -07:00
nsFrameStateBits.h Bug 1294628 - Replace block reflow input flags with a bit fields struct. r=dholbert 2016-08-12 15:28:45 +08:00
nsFrameUtil.cpp
nsGfxScrollFrame.cpp Bug 1292781 - Send scroll-position-restore updates to APZ, but don't allow them to clobber user scrolls. r=tnikkel 2016-08-24 09:15:29 -04:00
nsGfxScrollFrame.h Backed out 2 changesets (bug 1198135) for e10s reftest assertion failures 2016-08-18 19:23:26 -07:00
nsGridContainerFrame.cpp Bug 1281102 - Don't create table continuations unless we're paginating, and don't do grid fragmentation with unconstrained available bsize. r=dholbert 2016-08-23 23:34:35 +02:00
nsGridContainerFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsHTMLCanvasFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsHTMLCanvasFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsHTMLParts.h Bug 1277131 : Part 1 - rename nsTableOuterFrame to nsTableWrapperFrame. r=heycam 2016-06-16 13:14:08 +01:00
nsIAnonymousContentCreator.h
nsIFrame.h Bug 1200469 part 1 - Avoid using fallback cursor if from the same frame. r=tnikkel,smaug 2016-08-19 23:37:14 +10:00
nsIFrameInlines.h Bug 1294918 - Add helper method nsIFrame::IsFixedPosContainingBlock. r=dholbert 2016-08-12 18:39:45 -07:00
nsIFrameUtil.h
nsILineIterator.h
nsImageFrame.cpp Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj 2016-08-24 14:47:04 +08:00
nsImageFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsImageMap.cpp Bug 1263782 - Kill off the deprecated nsINode::IsInDoc(). r=baku 2016-03-31 11:58:25 +01:00
nsImageMap.h
nsInlineFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsInlineFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsIntervalSet.cpp
nsIntervalSet.h
nsIObjectFrame.h
nsIPageSequenceFrame.h
nsIScrollableFrame.h Bug 1284586 - Disable paint-skipping for scrollframes that we detect as having a CSS-clipped descendant. r=mstange 2016-07-13 16:05:53 -04:00
nsIScrollPositionListener.h
nsIStatefulFrame.h Bug 1249664 - Make stateful frames responsible for their own keys r=dbaron 2016-03-10 10:14:37 -05:00
nsLeafFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsLeafFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsLineBox.cpp Bug 1295192 - part 1 - remove CPP_THROW_NEW on layout struct operator new overloads that forward to nsPresShell::AllocateByObjectID; r=dholbert 2016-08-17 15:28:45 -04:00
nsLineBox.h Bug 1295192 - part 1 - remove CPP_THROW_NEW on layout struct operator new overloads that forward to nsPresShell::AllocateByObjectID; r=dholbert 2016-08-17 15:28:45 -04:00
nsLineLayout.cpp Bug 1288992 Part 3 - Rename local variables named metrics to reflowOutput. r=dholbert 2016-07-26 17:10:52 +08:00
nsLineLayout.h Bug 1277129 Part 7c - Rename various RS variables to RI. r=dbaron 2016-07-21 18:36:39 +08:00
nsPageContentFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsPageContentFrame.h Bug 1277129 Part 5c - Rename nsHTMLReflowMetrics to ReflowOutput. r=dbaron 2016-07-21 18:36:38 +08:00
nsPageFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsPageFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsPlaceholderFrame.cpp Bug 1296509 - Optimize GetFlattenedTreeParent. r=smaug 2016-08-19 14:43:53 -07:00
nsPlaceholderFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsPluginFrame.cpp Bug 1264530 - Hold on to Plugin Instance to survive frame poisoning. r=jimm 2016-08-10 16:21:01 -04:00
nsPluginFrame.h Bug 1293117 (part 5) - Change many NS_METHOD occurrences to NS_IMETHOD. r=froydnj. 2016-08-08 10:54:50 +10:00
nsQueryFrame.h
nsRubyBaseContainerFrame.cpp Bug 1277129 Part 7c - Rename various RS variables to RI. r=dbaron 2016-07-21 18:36:39 +08:00
nsRubyBaseContainerFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsRubyBaseFrame.cpp Bug 1264837 Part 9 - Remove nsRubyBaseFrameSuper. r=dholbert 2016-04-18 14:04:03 +08:00
nsRubyBaseFrame.h Bug 1264837 Part 9 - Remove nsRubyBaseFrameSuper. r=dholbert 2016-04-18 14:04:03 +08:00
nsRubyContentFrame.cpp Bug 1264837 Part 10 - Remove nsRubyContentFrameSuper. r=dholbert 2016-04-18 14:06:23 +08:00
nsRubyContentFrame.h Bug 1264837 Part 10 - Remove nsRubyContentFrameSuper. r=dholbert 2016-04-18 14:06:23 +08:00
nsRubyFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsRubyFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsRubyTextContainerFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsRubyTextContainerFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsRubyTextFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsRubyTextFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsSelection.cpp Bug 1261299 - Only update nsClipboard::sSelectionCache in nsSelection.cpp when the selection listener is on the same process as the focused window where the selection occured or became active. r=smaug 2016-08-03 19:08:33 -04:00
nsSimplePageSequenceFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsSimplePageSequenceFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsSplittableFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsSplittableFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsSubDocumentFrame.cpp Bug 1293001 - Part 1: Change the BinaryName of nsIFrameLoaderOwner::frameLoader (which overloaded another virtual method) to FrameLoaderXPCOM, r=froydnj 2016-08-11 15:49:39 -04:00
nsSubDocumentFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsTextFrame.cpp Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj 2016-08-24 14:47:04 +08:00
nsTextFrame.h Bug 1280887 - patch 2 - Make gfxTextRun refcounted, replace usage of UniquePtr<> with RefPtr<> for textruns, and make nsTextFrame hold a strong reference to its run(s). r=mats 2016-08-19 13:14:22 +01:00
nsTextFrameUtils.cpp
nsTextFrameUtils.h Bug 1288938: layout: Move the GlyphObserver to the text run instead of the frame. r=jfkthame 2016-08-03 10:53:37 -07:00
nsTextRunTransformations.cpp Bug 1288975 - Make innerText use nsCaseTransformTextRunFactory::TransformString to implement text-transform, so that it benefits from language-specific behaviors. r=mats 2016-08-20 00:08:24 +01:00
nsTextRunTransformations.h Bug 1288975 - Make innerText use nsCaseTransformTextRunFactory::TransformString to implement text-transform, so that it benefits from language-specific behaviors. r=mats 2016-08-20 00:08:24 +01:00
nsVideoFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsVideoFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsViewportFrame.cpp Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsViewportFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
ReflowInput.cpp Bug 1288992 Part 2 - Rename ReflowMetrics variables to ReflowOutput. r=dholbert 2016-07-26 16:33:52 +08:00
ReflowInput.h Bug 1282408 - add ignore initialization check flag for some variables from ReflowInput. r=dbaron 2016-08-23 15:51:45 +03:00
ReflowOutput.cpp Bug 1277129 Part 5c - Rename nsHTMLReflowMetrics to ReflowOutput. r=dbaron 2016-07-21 18:36:38 +08:00
ReflowOutput.h Bug 1277129 Part 5c - Rename nsHTMLReflowMetrics to ReflowOutput. r=dbaron 2016-07-21 18:36:38 +08:00
RubyUtils.cpp
RubyUtils.h Bug 1263773 - Mark a bunch of classes in layout as MOZ_RAII. r=dholbert 2016-03-28 13:34:26 +01:00
ScrollbarActivity.cpp Bug 824592 part 3. Get rid of nsIDOMElementCSSInlineStyle. r=peterv 2016-08-02 11:05:38 -07:00
ScrollbarActivity.h
ScrollSnap.cpp Bug 1219296 - Move the layout.css.scroll-snap.proximity-threshold pref to gfxPrefs, so it can be queried on the compositor thread. r=kats 2016-03-18 21:15:45 -04:00
ScrollSnap.h Bug 1219296 - Scroll snap directly in APZ instead of going through the main thread. r=kats 2016-03-28 18:36:02 -04:00
ScrollVelocityQueue.cpp
ScrollVelocityQueue.h
Selection.h Bug 1185307 part.1 Add nsISelection::AsSelection() r=smaug 2016-06-17 16:16:10 +09:00
SelectionChangeListener.h
StickyScrollContainer.cpp Bug 1280344 - Use first continuation's normal position in computing sticky scroll ranges for APZ. r=dholbert 2016-07-12 12:36:31 -04:00
StickyScrollContainer.h
TextOverflow.cpp Bug 1293739 - Part 1: Rename nsCSSProperty to nsCSSPropertyID. r=dholbert 2016-08-16 18:37:48 -07:00
TextOverflow.h Bug 1279451 - Remove a lot of unnecessary includes of nsAutoPtr.h. rs=sparky 2016-06-07 21:10:18 +01:00
Visibility.h Bug 1261554 (Part 3) - Visualize Visibility::IN_DISPLAYPORT regions in the APZ minimap visibility debugger. r=botond 2016-04-21 01:22:10 -07:00
VisibilityIPC.h Bug 1262671 - void** -> PickleIterator (r=froydnj) 2016-05-27 09:57:38 -07:00
WritingModes.h Bug 1293604 - Replace NS_STYLE_FLOAT_* with StyleFloat enum class. r=dbaron 2016-08-09 17:32:54 +08:00