Commit Graph

296 Commits

Author SHA1 Message Date
Matt Woodrow
c2045c9636 Bug 539356 - Handled scrolled inactive layers trees correctly. r=roc 2012-09-17 10:57:22 +12:00
Matt Woodrow
85b54a0096 Bug 539356 - Add an option for frames to invalid just a rect instead of the frame bounds. r=roc 2012-08-29 17:48:45 +12:00
Matt Woodrow
d73a4f9aee Bug 539356 - Add HasRetainedDataFor. r=roc 2012-08-29 17:48:45 +12:00
Robert O'Callahan
d80cd2baee Bug 770001. When comparing clips, adjust for any change in the ThebesLayer coordinate system. When clips are different, try to accumulate differences intelligently, taking into account that changes in clips outside the bounds of the clipped display item don't matter. r=mattwoodrow 2012-08-29 17:48:44 +12:00
Matt Woodrow
ff24e9bcd6 Bug 539356 - Part 25 - Invalidate display items that have a changed clip. r=roc 2012-08-29 17:48:43 +12:00
Matt Woodrow
335c52c344 Bug 539356 - Part 14 - Handle multiple widget layer managers retaining data for the same frame. r=roc 2012-08-29 17:48:41 +12:00
Matt Woodrow
71a64e04d5 Bug 539356 - Part 12 - Remove unnecessary LayerManagerLayerBuilder indirection. r=roc 2012-08-29 17:48:15 +12:00
Matt Woodrow
24eaff95c9 Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt 2012-08-29 17:38:58 +12:00
Phil Ringnalda
d5f54836b0 Back out 85d6cbd01d39, 56fc051c1932, a2ad17b87332 (bug 781053) for OS X debug assertions and crashes 2012-09-24 21:23:05 -07:00
Phil Ringnalda
5546d568b8 Back out 8bd13443d0bc (bug 579517) to get a clean backout 2012-09-24 21:21:10 -07:00
Ehsan Akhgari
65c165e3b9 Bug 579517 follow-up: Remove NSPR types that crept in 2012-09-24 17:55:10 -04:00
Matt Woodrow
d36479e7b2 Bug 781053 - Part 2 - Trigger empty transactions when an animated image in an ImageLayer changes frame. r=roc 2012-09-25 08:31:30 +12:00
Matt Woodrow
8c9574e068 Bug 781053 - Part 1 - Allow conversion of nsImageBoxFrame to an ImageLayer. r=roc 2012-09-25 08:29:14 +12:00
Matt Woodrow
8ba982c78c Bug 788044 - Apply the ContainerState offset to ImageLayers. r=roc 2012-09-24 14:56:39 +12:00
Robert O'Callahan
16334e2719 Bug 777194. Part 5: When choosing a subpixel position to scroll to, align the new position with the position that was most recently used to rerender the scrolled layer(s). r=tnikkel
If we always align the new scroll position with the previous scroll position, we can accumulate error and
gradually drift out of alignment with the layer pixels until we exceed the tolerance and are forced to
rerender everything.
2012-08-17 11:40:10 +12:00
Robert O'Callahan
938a3c28f0 Bug 777194. Part 8: Nudge transform matrix in ChooseScaleAndSetTransform to avoid math error. r=tnikkel 2012-08-25 16:41:46 +12:00
Matt Woodrow
1efdc4e5f4 Bug 788044 - Make inactive layer subtrees relative to the ContainerLayer, not the reference frame. r=roc 2012-09-17 10:25:33 +12:00
Matt Woodrow
8e7c8ce3c8 Bug 788044 - Make transformed frames the reference frame for their display list tree. r=roc 2012-09-16 22:32:59 +12:00
Matt Woodrow
f3003da7b2 Bug 788044 - Make various functions take const parameters. r=roc 2012-09-13 12:32:53 +12:00
Chris Lord
62eea2e14f Bug 786502 - Fix background-attachment:fixed scrolling with page. r=roc
Fix the size check in nsDisplayBackground::ShouldFixToViewport so that async
scrolling of fixed backgrounds works correctly when zoomed in on Firefox
Mobile. Also make IsFixedItem in nsDisplayList public and use it in
FrameLayerBuilder, so that fixed items are determined and treated consistently.
2012-09-13 11:34:34 +01:00
Matt Woodrow
77ad033af6 Bug 789396 - Don't overwrite the existing mContainerLayerGeneration value on ThebesLayerItemsEntrys. r=roc 2012-09-12 09:17:26 +12:00
Nicholas Cameron
3d5e2f4a8f Bug 786817. Initialise ThebesDisplayItemLayerUserData::mMaskClipCount. r=roc 2012-09-06 16:07:53 +12:00
Nicholas Cameron
7e6975b974 Bug 769021; fix a memory leak with mask sharing. r=khuey 2012-09-04 13:02:56 +12:00
Nicholas Cameron
8d4372fd21 Bug 786817; Check multiple masks properly and invalidate after removing a mask layer. r=roc 2012-09-04 13:02:56 +12:00
Nicholas Cameron
e7e7a5f8ac Back out bug 769021, bug 786817 2012-09-03 22:47:51 +12:00
Nicholas Cameron
e1508def8b Bug 769021; fix a memory leak with mask sharing. r=khuey 2012-09-03 22:35:33 +12:00
Nicholas Cameron
cb12b352e8 Bug 786817; Check multiple masks properly and invalidate after removing a mask layer. r=roc 2012-09-03 22:35:33 +12:00
Ed Morley
c103096585 Backout 03cb77f8d75d (bug 769021), 04fd792509d6 (bug 786817) for burning the tree 2012-09-03 09:20:05 +01:00
Nicholas Cameron
dd15879ca5 Bug 769021; fix a memory leak with mask sharing. r=khuey 2012-09-03 18:58:07 +12:00
Nicholas Cameron
f13b45ca31 Bug 786817; Check multiple masks properly and invalidate after removing a mask layer. r=roc 2012-09-03 18:58:07 +12:00
Chris Lord
64667f9a5f Bug 786672 - Use the scrolled frame for nsDisplayScrollLayer when finding the active scrolled root. r=roc
The underlying frame of an nsDisplayScrollLayer can change and end up returning
different values when finding the active scrolled root. Instead of relying on
display-item ordering/merging, get the scrolled frame from the item (which was
already storing it).
2012-08-30 08:31:16 +01:00
Ehsan Akhgari
0ea96088f3 Bug 579517 follow-up: Remove NSPR types that crept in 2012-08-29 10:56:51 -04:00
Chris Lord
e4471e85b6 Bug 785333 - Make sure layers are only associated with a single frame. r=roc
Use Layer user-data to ensure that a Layer doesn't end up being found multiple
times for different frames during construction.
2012-08-29 11:53:34 +01:00
Chris Lord
47fdf5e7fb Bug 785333 - Keep track of merged frames with all display items. r=roc
This changes the display-item storage to store layers against the underlying
frame and all merged frames of an item (and similarly, to retrieve them against
all frames of an item).
2012-08-29 11:53:27 +01:00
Chris Lord
de673369d5 Bug 785333 - Store container layers against merged frames. r=roc
As well as storing the container layer against the underlying frame of the
container item, store it against its merged frames as well. In addition, check
for old container layers against merged frames when building a container layer.

This protects against losing the layer when the underlying frame of a container
item changes to either a new frame or an existing, merged frame.
2012-08-29 11:53:20 +01:00
Chris Lord
fab4370a1f Bug 785333 - Don't rely on layer ordering in ContainerState::Finish. r=roc
Rather than relying on a particular ordering of layers in
ContainerState::Finish, use ContainerLayer::Reposition to more reliably remove
old, unused layers.
2012-08-29 11:53:06 +01:00
Gavin Sharp
6e3596347e Back out bug 785333 (revisions 79345542f853 and a1756976e61d) to fix crasher bug 785626 2012-08-27 16:41:19 -07:00
Chris Lord
0dfa105736 Bug 785333 - Keep track of merged frames with all display items. r=roc
This changes the display-item storage to store layers against the underlying
frame and all merged frames of an item (and similarly, to retrieve them against
all frames of an item).
2012-08-24 16:17:22 +01:00
Chris Lord
0c08285e7b Bug 785333 - Store container layers against merged frames. r=roc
As well as storing the container layer against the underlying frame of the
container item, store it against its merged frames as well. In addition, check
for old container layers against merged frames when building a container layer.

This protects against losing the layer when the underlying frame of a container
item changes to either a new frame or an existing, merged frame.
2012-08-24 16:17:22 +01:00
Chris Lord
2bb18ad18c Bug 781516 - Remove DisplayItemDataEntry.mIsMergedFrame. r=roc
This is unnecessary as it just duplicates the functionality of
mIsSharingContainerLayer.
2012-08-24 11:59:37 +01:00
Chris Lord
5b677f8c5c Bug 771154 - Invalidate only the frame rect when new frames come into view. r=roc
Instead of forcing a full-layer invalidation when new frames appear, invalidate
only the bounds of the frame. Invalidating untrusted geometry still causes a
full-layer invalidation.
2012-08-23 12:14:47 +01:00
Chris Lord
782d16013f Bug 781516 - Fix invalidation caused by unprocessed merged frames. r=roc
As clip items aren't processed, they have no associated layer entries. This is
a problem when a clip item's underlying frame is the same as one that gets
merged into a container layer, as display-item data will be created, but no
layer entry will be added. This will cause it to be removed on the next
layer-build, and cause a full invalidation.

Fix this by adding an 'mIsMergedFrame' entry to DisplayItemDataEntry and setting
it on all merged frames in BuildContainerLayerFor. This property stops the
entry from being removed when it gets updated.
2012-08-23 09:30:53 +01:00
Ehsan Akhgari
243c878d26 Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
This patch was generated by a script.  Here's the source of the script for
future reference:

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t

convert PRIntn int
convert PRUintn unsigned

convert PRSize size_t

convert PROffset32 int32_t
convert PROffset64 int64_t

convert PRPtrdiff ptrdiff_t

convert PRFloat64 double
2012-08-22 11:56:38 -04:00
David Zbarsky
b3df96766a Bug 784004 - Don't include Layers.h everywhere Part 3 r=nical 2012-08-21 00:06:46 -04:00
Matt Woodrow
ee71c0ebd5 Bug 739671 - Store optimized Color/ImageLayers on the ThebesLayers that they replace. r=roc 2012-08-20 22:00:49 +12:00
Matt Woodrow
8a1b8efbbd Bug 782372 - Fix clang build. r=nical 2012-08-20 14:39:10 +12:00
Nicolas Silva
e0905a590a Bug 782372 - Splits ImageLayers.h into ImageLayers.h ImageContainer.h and ImageTypes.h, r=bgirard 2012-08-19 15:33:25 -04:00
Aryeh Gregor
0cc22f7712 Bug 626472 part 3 - Remove nsnull for good; r=ehsan 2012-08-12 13:43:47 +03:00
Chris Lord
5b2af91a59 Bug 777260 - Fix invalidations on transform items in container layers. r=roc
Since Bug 758620, it's possible for an nsDisplayTransform to appear as the
child of a container layer. This caused problems when it was inactive, as the
invalidation would not be transformed in this case.

Fix this in FrameLayerBuilder by mandating that InvalidateThebesLayerContents
takes the untransformed invalidation and apply the transform in
BuildContainerLayer.
2012-08-13 22:54:38 -04:00
Matt Woodrow
fab3eed677 Bug 780868 - Only reuse MaskLayers on LayerManagers with the same backend type. r=nrc 2012-08-13 22:11:40 +12:00