Commit Graph

493 Commits

Author SHA1 Message Date
Botond Ballo
aa2fd58a6a Bug 1219296 - Split fields not needed for repaints out from FrameMetrics. r=kats
MozReview-Commit-ID: DymHOSI6yYK
2016-03-28 19:14:52 -04:00
Seth Fowler
0f24c44100 Bug 1157546 - Replace the image visibility API with a more general API that tracks visibility for any kind of frame. r=mstange 2016-03-25 14:49:43 -07:00
Benoit Girard
958bd77f36 Bug 1259235 - Add IsScrollFrameWithSnapping to speed up event regions. r=mstange
MozReview-Commit-ID: KdWCkXHjHzZ
2016-03-23 17:16:38 -04:00
Kartikaya Gupta
c122b280b4 Bug 1255856 - Don't allow paint-skipping if there are windowed plugins on the page. r=mstange,jimm
MozReview-Commit-ID: BzQcUrSqCr5
2016-03-15 15:12:11 -04:00
Kartikaya Gupta
1b0954a823 Bug 1253860 - Don't update the scrollbar unless we're actually painting. r=mstange
MozReview-Commit-ID: 3JIcp2NFwRn
2016-03-09 22:57:15 -05:00
Kartikaya Gupta
344813f69a Bug 1253860 - Add a flag on scroll frames indicating if they have an APZ counterpart. r=mstange
MozReview-Commit-ID: EEmdmjrbG3O
2016-03-09 22:57:14 -05:00
Jim Mathies
2ee4b50a96 Bug 1232181 - Notify plugins about scroll state. r=roc 2016-03-01 12:48:26 -06:00
Botond Ballo
f28bdb01dc Bug 1250550 - Ensure a scroll event posted during a refresh driver tick fires during that same tick. r=mats
MozReview-Commit-ID: 1ZvYjA6a5ay
2016-02-24 18:20:40 -05:00
Kartikaya Gupta
0ae4c1c9a4 Back out cset 447498cdecee for landing the wrong patch (it was obsoleted by a new one).
MozReview-Commit-ID: HOLKux4OtCQ
2016-03-01 09:38:55 -05:00
Botond Ballo
8a9c37e5b8 Bug 1250550 - Ensure a scroll event posted during a refresh driver tick fires during that same tick. r=mats
MozReview-Commit-ID: 1ZvYjA6a5ay
2016-02-24 18:20:40 -05:00
Kartikaya Gupta
68ddf244f3 Bug 1245925 - Don't allow expiring the displayport on root scrollframes. r=tnikkel
MozReview-Commit-ID: 8LGsk9uKyL5
2016-02-10 17:11:28 -05:00
Kartikaya Gupta
ba4a7c0c09 Bug 990916 - When setting a displayport, schedule a timer to remove it as well. r=tnikkel 2016-02-03 19:13:35 -05:00
Kartikaya Gupta
8bba4af136 Bug 990916 - Track if a scrollframe is a scroll parent for something else. r=tnikkel 2016-02-03 19:13:35 -05:00
Timothy Nikkel
ec740ce090 Bug 1241371. Don't schedule an image visibility update every time display port margins change. r=kats
Displayport margins change by small amounts on almost every single scroll. We do not want to update image visibility nearly that often.

As the comment, and the original bug (bug 1169881) suggest this is only meant to catch rather large changes in display ports as we already have means to trigger an image visibility update via a scroll position change and via any style or layout flush.
2016-01-22 00:29:17 -06:00
Timothy Nikkel
39e95d6ca1 Bug 1241371. Properly update mLastUpdateImagesPos on scrollframes when the image visibility pass encounters them. r=mats
This is a regression from bug 1002992 where we switch from the display list builder to the frame tree walker and didn't update mLastUpdateImagesPos in the frame walker.
2016-01-21 19:09:04 -06:00
Jim Mathies
66d5f0d61b Bug 1193055 - Update windowed plugin visibility in response to apz scroll in the chrome process vs. relying on a full round trip through content. Reduces lag in windowed plugin updates. r=kats 2016-01-12 11:05:58 -06:00
David Anderson
bded82f5a5 Fix crash trying to allocate textures for oversize scrollbars. (bug 1214261, r=mstange) 2015-12-17 11:13:45 -08:00
Markus Stange
55bb4c2297 Bug 1147673 - Make display items know about their scroll clips. r=tn, r=roc 2015-12-22 16:54:19 +01:00
Kartikaya Gupta
334656497a Bug 1234242 - Keep a RefPtr to the refresh driver to unregister the ScrollEvent, rather than relying on a chain of pointers remaining non-null. r=mstange a=KWierso 2015-12-21 14:40:20 -05:00
Markus Stange
b7d7c15fe9 Bug 1209970 - Fire scroll events early in the refresh tick. r=mats
With APZ we want to be firing scroll events to content more consistently, so
we tie them to the refresh driver tick rather than firing them on paint or
haphazardly on the next spin of the event loop.

Patch by Markus Stange, test fixes by Kartikaya Gupta
2015-12-17 17:19:30 -05:00
Kartikaya Gupta
07e7b9c39e Bug 1232048 - Fix breakage in scroll snapping when snapping twice in a row to the same thing with non-smooth-scrolls in between. r=botond 2015-12-16 10:42:49 -05:00
Carsten "Tomcat" Book
791f2a3ca3 Backed out changeset 68b33692bed3 (bug 1147673) 2015-12-16 11:52:37 +01:00
Markus Stange
7ce6f2aca9 Bug 1147673 - Make display items know about their scroll clips. r=tn, r=roc 2015-12-12 10:58:37 -05:00
Kartikaya Gupta
f20d6e312b Bug 1228407 - Avoid a scenario where content floods APZ with smooth-scroll requests and blocks it from syncing a new scroll offset back to the main thread. r=botond 2015-12-09 10:13:34 -05:00
Kartikaya Gupta
9280e7779a Back out three patches from bug 1228407 on a CLOSED TREE for causing various mochitest failures. r=backout 2015-12-08 21:00:30 -05:00
Kartikaya Gupta
110d80bd75 Bug 1228407 - Avoid a scenario where content floods APZ with smooth-scroll requests and blocks it from syncing a new scroll offset back to the main thread. r=botond 2015-12-08 14:56:26 -05:00
Kartikaya Gupta
a58e442256 Bug 1226872 - Stop keeping a copy of the resolution in the root scrollframe. r=roc
The only reason we had this in the scrollframe at all was so that it could be
saved/restored as part of the frame state when leaving a page and then going
back to it. However we can accomplish this by just reading/writing the resolution
from/to the presshell instead, so there's no need to keep a second copy of it.
2015-11-23 09:14:15 -05:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Timothy Nikkel
ee64435e14 Bug 1210578. Part 3. Create DecideScrollableLayer that encapsulates all logic to create display ports and build scrollable layers. r=mstange
For root scroll frames we need information about the async scrolling (or lack thereof) of the scroll frame before we get to ScrollFrameHelper::BuildDisplayList for the scroll frame. We need it in nsLayoutUtils::PaintFrame and nsSubdocumentFrame::BuildDisplayList. So we factor out all the code responsible for async scrolling decisions into one function we can call from all three places.
2015-10-12 15:21:49 -05:00
Timothy Nikkel
fe19ed8161 Bug 1210578. Part 1. Rename mShouldBuildScrollableLayer to mWillBuildScrollableLayer to better capture the meaning of the variable. r=mstange 2015-10-12 15:21:49 -05:00
Timothy Nikkel
8b9efda4f0 Backout part 1 of bug 1195431 (cf841511b71a). 2015-10-12 15:21:48 -05:00
Timothy Nikkel
d93fe80287 Backout part 2 of bug 1195431 (2e5d1c6a4a0c). 2015-10-12 15:21:48 -05:00
Timothy Nikkel
8db244a226 Bug 1210577. Remove useless virtual keyword from ScrollFrameHelper::ComputeScrollClip. r=mstange 2015-10-12 13:50:14 -05:00
Jim Mathies
d16758c6d9 Bug 1137944 - Add plugin window handling for apz related notifications received by the content process. r=mstange 2015-10-06 14:23:25 -05:00
Jim Mathies
c38d13d5b2 Bug 1137944 - Add support for hiding plugin windows during async dom scroll operations managed in the content process. r=roc 2015-10-06 14:23:24 -05:00
Kartikaya Gupta
5bcfabab22 Bug 1195431 - Extract a helper function to determine if the scrollframe will build a scrollable layer. r=tn 2015-09-23 09:34:41 -04:00
Kartikaya Gupta
95a72548e2 Bug 1195431 - Extract a couple of helper functions. r=tn 2015-09-23 09:34:41 -04:00
Kartikaya Gupta
17d6ba4cbf Bug 1201529 - Ensure that zoomable scrollframes return true from WantAsyncScroll(). r=botond 2015-09-11 21:58:16 -04:00
Markus Stange
236500b79f Bug 1181135 - Copy DisplayItemClips in order to avoid dangling pointers. r=tn 2015-09-09 19:08:03 -04:00
Matt Woodrow
149f73228a Bug 1187432 - Avoid scheduling main-thread paints for scrolls handled by apz. r=tn 2015-08-07 15:37:56 -04:00
Jonathan Kew
f461fbbfda Bug 1172450 - Size and position the dropdown arrow properly in vertical writing modes. r=smontagu 2015-07-27 16:52:12 +01:00
Birunthan Mohanathas
a29151dc87 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Ehsan Akhgari
9c41eb5377 Bug 1178745 follow-up: Mark overridden ComputeScrollClip() methods as override 2015-07-05 21:26:51 -04:00
Markus Stange
33793d8676 Bug 1178745 - Add an nsIScrollableFrame API for getting the scroll clip. r=roc 2015-07-02 16:42:10 -04:00
Markus Stange
13dceaa237 Bug 990974 - Add a flag to ComputeFrameMetrics so that a different clip can be returned for the caret and non-caret content. r=roc 2015-07-02 13:42:34 -04:00
Markus Stange
5b6ca0437f Bug 990974 - When using display ports, don't clip the painted contents to the content box clip. r=roc
Store the content box clip on mAncestorClip, and store a different clip for the caret on mAncestorClipForCaret.
In a future patch, those clips will be selectively applied to the right layers.
2015-07-03 14:06:15 -04:00
David Anderson
2511c6ca59 Bug 1148582 - Add mask layers to FrameMetrics for ancestor scroll frame clips. r=mattwoodrow 2015-06-21 12:27:31 -04:00
Markus Stange
3000f6c8eb Back out bug 1148582 for static analysis bustage. 2015-07-01 01:20:59 -04:00
David Anderson
38a60e1411 Bug 1148582 - Add mask layers to FrameMetrics for ancestor scroll frame clips. r=mattwoodrow 2015-06-21 12:27:31 -04:00
Simon Montagu
149fd5095d Bug 1113206: Make nsComboboxControlFrame and nsListControlFrame use logical coordinates and support vertical writing modes - patch by smontagu with additions by jfkthame. r=jfkthame,smontagu 2015-02-08 07:31:14 -08:00