Commit Graph

1428 Commits

Author SHA1 Message Date
Kartikaya Gupta
76f8a60d43 Bug 1226872 - Remove unnecessary wrapper methods in nsLayoutUtils. r=roc 2015-11-23 09:14:18 -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
L. David Baron
cab615e8d5 Bug 1223653 patch 2 - Use an enum class for NS_STYLE_BOX_SIZING_*. r=heycam
The casts in nsCSSProps.cpp (defining kBoxSizingKTable) and in
nsComputedDOMStyle::DoGetBoxSizing (using
nsCSSProps::ValueToKeywordEnum) are a little bit annoying, though aren't
a net reduction in typesafety.

The casts in nsRuleNode.cpp (SetDiscrete) are a little more annoying,
though the change in this patch should be sufficient for converting all
properties -- but that may also mean reducing typesafety a bit for all
properties.

I'd like to find something better to do about them, but I think I'm ok
landing this before doing that.  Bug 1224918 covers doing better.
2015-11-19 18:09:29 -08:00
L. David Baron
75cee4ae72 Bug 1224464 patch 2 - Make nsCSSProps keyword tables be arrays of structs, to represent what they logically are. r=heycam 2015-11-19 18:08:57 -08:00
Tobias Schneider
9a27f06269 Bug 1221677 - "[css-grid] Put the 'subgrid' support behind a pref, disabled by default". r=mats 2015-11-13 13:15:00 +01:00
Timothy Nikkel
6dada20527 Bug 1223639. Rename ForceInside to MoveInsideAndClamp so it's clearer what it does. r=botond
This has led to confusion at least twice.
2015-11-11 16:38:25 -06:00
Timothy Nikkel
319089156a Bug 1223639. Use ForceInside to constrain the displayport rect to the scrollable rect instead of intersect. r=botond
ForceInside shifts the rect first, and then clamps if needed. So the displayport doesn't get shrunk unnecessarily.

Bug 1191539 fixed this bug by applying ForceInside to the screen rect of the display port, which happens before the incorrect Intersect call.

It's better to remove the Intersect call and just do ForceInside once at the end to the final display port rect.

Bug 957668 introduced this bug by using Intersect instead of ForceInside when copying the code from AsyncPanZoomController::CalculatePendingDisplayPort when creating the code that computed a displayport rect from displayport margins.
2015-11-11 16:38:24 -06:00
Botond Ballo
60a5318264 Bug 1222661 - Replace FromUntyped(obj) calls with FromUnknown*(obj). r=nical 2015-11-09 18:22:25 -05:00
Bas Schouten
7a6e16b517 Bug 1210560 - Part 6: Convert code to support non-operator OVER in nsCSSRendering to moz2d. r=roc 2015-11-11 16:15:40 +01:00
Kartikaya Gupta
0e1f47f4ed Bug 1214267 - Send the side to which fixed-pos items are attached so that we can move them in the compositor more correctly when the viewport size is changing. r=mattwoodrow 2015-11-11 10:07:29 -05:00
Jamie Nicol
0f54857e7d Bug 1223479 - Fix displayport size calculation on fennec. r=kats
The displayport was accidentally being calculated as too large. This was
leading to a large number of tiles existing at once, causing very high
memory usage.
2015-11-11 09:38:12 +00:00
Kartikaya Gupta
15b17818c8 Bug 1205087 - Cache the AnimatedGeometryRoot on DisplayItem. r=roc 2015-10-05 17:09:34 -04:00
Nicholas Nethercote
c3c2a5bf71 Bug 1223310 (part 2) - Use LayoutDeviceIntRect for bounds-related functions in nsIWidget. r=kats.
The patch renames the existing functions (GetBounds(), GetClientBounds(), etc)
by adding an |Untyped| suffix. It then adds typed equivalents, and uses those
typed equivalents in all the call sites where it's easy to do so. The trickier
remaining call sites are converted to use the Untyped-suffix version.
2015-11-09 21:37:32 -08:00
Jonathan Kew
eecb602b58 Bug 1122918 - Put the logical values for 'float' and 'clear' behind a pref, and enable them only on nightly builds and for B2G. r=heycam 2015-11-10 09:07:01 +00:00
Timothy Nikkel
1657bb4455 Bug 1221870. Make fixed pos items always find the root scroll frame when looking for the nearest scrollable. r=botond
Not just when it's the root document.
2015-11-09 18:21:40 -06:00
Timothy Nikkel
4d76dffd3a Bug 1208780. Set a zero-margin displayport on all scrollable ancestors of frames with displayports if they don't already have a displayport. r=botond 2015-11-05 18:57:17 -06:00
Timothy Nikkel
f8b7631909 Bug 1215977. Add a flag for GetNearestScrollable that makes fixed pos frames return the root scroll frame of their document. And make APZCCallbackHelper use it to restore previous behaviour. r=botond
We may want to do this for fixed pos frames in all documents (not just root documents). However, this patch only maintains the previous behaviour on purpose.
2015-11-04 19:51:03 -06:00
Timothy Nikkel
1c01781a8b Bug 1215977. Only match the root scroll frame in GetNearestScrollableFrame if we encounter it. r=botond
Instead of returning the root scroll frame if we encountered the root frame (which is the parent of the root scroll frame).

This allows the use of GetNearestScrollableFrame to walk up the frame tree without getting into a infinite loop going from root scroll frame to root frame and back.

This regresses bug 1105823 in that fixed pos frames will no longer find the root scroll frame of their document. The next patch will fix that.

The only other type of frame that will be affected when calling GetNearestScrollableFrame are viewport (root) frames. However, the only user of SCROLLABLE_ALWAYS_MATCH_ROOT (APZCCallbackHelper) calls GetNearestScrollableFrame on the result of a hit test on a display list. Viewport frames never create any display items whose HitTest function could return the viewport frame.
2015-11-04 19:51:03 -06:00
Timothy Nikkel
fe5fff0f4e Bug 1215974. In GetNearestScrollableFrame don't skip the root scroll frame if we are asked to always match the root scroll frame even if it doesn't WantAsyncScroll(). r=botond
SCROLLABLE_ALWAYS_MATCH_ROOT should take precendence over SCROLLABLE_ONLY_ASYNC_SCROLLABLE as if we fail to find the root scroll frame we will have no usable scroll frame at all.
2015-11-04 19:51:03 -06:00
Mats Palmgren
59aa2c1479 Bug 1176775 part 1 - [css-grid] Implement "Implied Minimum Size of Grid Items" (special min-width/height:auto behavior). r=dholbert 2015-11-03 21:45:33 +01:00
Kartikaya Gupta
5e2044fab9 Bug 1141884 - Handle wheel events on the main thread if the frame has snapping. r=dvander,mstange 2015-11-03 14:21:40 -05:00
Timothy Nikkel
a31e71e20e Bug 1156238. Fix the computation of animated geometry roots for transform items. r=mattwoodrow
Removing the "stop at ancestor" parameter from functions that compute AGR meant that nsLayoutUtils::GetAnimatedGeometryRootFor could no longer pass the display item's reference frame as the "stop at ancestor" which meant that the AGR could cross the reference frame for the item, which we don't want. So we make transformed frames into AGRs.

This makes the computation of display items whose frames are transformed tricky. We need the AGR of the transform item to be the ancestor AGR, not the underlying frame of the transform item (which is now an AGR). So we modify nsLayoutUtils::GetAnimatedGeometryRootFor to handle this. (The patch from bug 1205087 didn't suffer from this problem because it special cased the computation of the AGR of transform items. Leaving anybody who called nsLayoutUtils::GetAnimatedGeometryRootFor to get the wrong result.)

The computation of the AGR for scroll metadata in ContainerState::ProcessDisplayItems specifically bypassed nsLayoutUtils::GetAnimatedGeometryRootFor to avoid it's special processing of fixed background items. However we do want the AGR for scroll metadata to do this special processing of transform items. So we add a flag to bypass the fixed background behaviour and use it for the scroll metadata AGR.
2015-11-03 02:03:47 -06:00
Matt Woodrow
58b7baaafe Bug 1156238. Always stop at the root reference frame when looking for an animated geometry root. r=roc,mattwoodrow
This removes the "aStopAtAncestor" argument to agr computing functions. In most cases an AGR was passed for the stop at ancestor, so we'd stop at it anyway since it was an AGR. Most of the remaining cases the root reference frame was passed. And in a few cases something else was passed, which we probably don't want (returning something that isn't an AGR and isn't the root reference frame as an AGR).

The ShouldFixToViewport case is a little tricky. We want to get the AGR of the nearest viewport frame, but only if we don't have to cross our root reference frame to get it. This happens in practice for example when a select dropdown has background-attachment: fixed inside it.

Except for the ShouldFixToViewport bit, this patch is a subset of part 3 in bug 1205087 (which has more changes, and has been temporarily backed out, the remaining bits can hopefully land soon).

The ShouldFixToViewport part is by Timothy Nikkel <tnikkel@gmail.com>
2015-11-03 02:03:47 -06:00
Timothy Nikkel
b938212b03 Bug 1215356. When setting a display port, schedule paint on that frame, not the root frame of the document. r=mattwoodrow
If we set a display port on an element in a popup we need to repaint the popup, not the main window.
2015-11-01 11:45:40 -06:00
Milan Sreckovic
8feec0d950 Bug 1214802 - gfxEnv - consolidate environment variables used by the graphics code in one place. r=botond 2015-10-28 14:31:00 +01:00
Kartikaya Gupta
4aeca7ddfe Bug 1212136 - Remove noisy warning that we don't have time to investigate properly. r=tnikkel 2015-10-29 11:27:00 +01:00
James Willcox
16470cc632 Bug 1213970 - Enable APZ on iOS r=kats 2015-10-28 14:10:27 -05:00
Nathan Froyd
e1d2bcea21 Bug 1217939 - part 2 - move nsContentUtils::GetSelectionBoundingRect to nsLayoutUtils; r=smaug
All callers of this function are in layout/base/ and it uses a lot of
things from nsLayoutUtils, so nsLayoutUtils seems like a better fit for
it.
2015-10-23 13:39:00 -04:00
Benoit Girard
7d2220b74d Bug 1204136 - Align DisplayPort on non-tiling platform. r=botond 2015-10-13 15:19:51 -04:00
James Kitchener
cc3abbccea Bug 1011020 - Add the ability to fall back to not snapping, if snapping results in a zero area rect r=roc (relanding with correct bug number, DONTBUILD) 2015-10-17 10:18:00 -07:00
Phil Ringnalda
a17011f3cb Back out changeset 2fe5dee8825d (not 1101020) for landing with the wrong bug number 2015-10-17 21:44:43 -07:00
James Kitchener
81ec642f75 Bug 1101020 - Add the ability to fall back to not snapping, if snapping results in a zero area rect r=roc 2015-10-17 10:18:00 -07: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
Nathan Froyd
bf7f6dda03 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Wes Kocher
37b582dfdc Backed out changeset b5fe97ae33f4 (bug 1204136) for m-e10s(5) failures 2015-10-15 15:50:27 -07:00
Benoit Girard
4ae5a8db4c Bug 1204136 - Align DisplayPort on non-tiling platform. r=botond 2015-10-13 15:19:51 -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
8b9efda4f0 Backout part 1 of bug 1195431 (cf841511b71a). 2015-10-12 15:21:48 -05:00
Nicholas Nethercote
69ab754504 Bug 1211324 (part 5) - Remove GraphicsFilter and gfxGraphicsFilter. r=mattwoodrow. 2015-10-05 17:18:10 -07:00
Nicholas Nethercote
e04159e24b Bug 1211324 (part 4) - Replace GraphicsFilter constants with gfx::Filter equivalents. r=mattwoodrow.
The conversion is as follows:

- GraphicsFilter::FILTER_NEAREST == gfx::Filter::POINT
- GraphicsFilter::FILTER_GOOD    == gfx::Filter::GOOD
- GraphicsFilter::FILTER_BEST    == gfx::Filter::LINEAR

Also typedef GraphicsFilter to gfx::Filter; this will be removed in the next
patch.

These changes mean ToFilter() and ThebesFilter() are no longer needed.
2015-10-05 17:12:46 -07:00
Nicholas Nethercote
0fe83f7ab7 Bug 1211324 (part 3) - Remove GraphicsFilter::FILTER_FAST and replace it with FILTER_BEST. r=mattwoodrow.
This may sound like an odd change but it's what the current code effectively
already does due to the way ToFilter() and ThebesFilter() are defined.
2015-10-05 16:59:32 -07:00
Carsten "Tomcat" Book
3e461adc0a Backed out changeset 79746e93020a (bug 1011020) for causing bug 1212267 2015-10-07 12:17:02 +02:00
James Kitchener
ea4b7ba14c Bug 1011020 - Add the ability to fall back to not snapping, if snapping results in a zero area rect r=roc - relanding with correct bug number on a CLOSED TREE 2015-10-05 05:00:00 +02:00
Carsten "Tomcat" Book
54b96b76ee Backed out 1 changesets (bug 1101020) for landing with wrong bugnumber on a CLOSED TREE
Backed out changeset 18d4a0ca8cc1 (bug 1101020)
2015-10-07 09:24:27 +02:00
James Kitchener
41960cd41f Bug 1101020 - Add the ability to fall back to not snapping, if snapping results in a zero area rect r=roc 2015-10-07 11:18:08 +05:30
Botond Ballo
63e70977ef Bug 1205511 - Use nsPresContext::DevToCSSPixelScale() where appropriate. r=kats 2015-09-28 20:14:26 -04:00
Botond Ballo
48ca7899ae Bug 1208661 - Show display list and layer textures in-line in the HTML paint dump. r=BenWa 2015-09-28 15:22:05 -04:00
Botond Ballo
fd120310ea Bug 1208661 - Do not assume that PaintRoot()'s contributions to the HTML paint dump will all be inside a <script> tag. r=BenWa 2015-09-25 19:23:13 -04:00
Botond Ballo
e845d4322f Bug 1206915 - Handle nested PaintFrame() calls correctly during paint dumping. r=mattwoodrow,BenWa 2015-09-21 19:05:44 -04:00
Botond Ballo
90fb729371 Bug 1206915 - Make paint dumping to a file e10s-friendly. r=mattwoodrow 2015-09-21 18:44:28 -04:00