Commit Graph

99 Commits

Author SHA1 Message Date
Matt Woodrow
c36e8e6c82 Bug 539356 - Part 9e - FrameLayerBuilder changes for display list invalidation. r=roc
* * *
imported patch move-by-correctly
2012-08-29 17:47:15 +12:00
Matt Woodrow
cee1aa3599 Bug 539356 - Part 9c - Remove old invalidation code. r=bz 2012-08-29 17:39:31 +12:00
Ed Morley
aba3a8f5ef Revert mozilla-inbound to e4dd1fa6d222 for crashes and test failures on a CLOSED TREE 2012-09-27 16:34:46 +01:00
Matt Woodrow
4d096475d2 Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt 2012-08-29 17:38:58 +12:00
Matt Woodrow
ad9a9edc59 Bug 788044 - Make inactive layer subtrees relative to the ContainerLayer, not the reference frame. r=roc 2012-09-17 10:25:33 +12:00
Brendan Dahl
4478101696 Bug 745025 - Part 2 - Adds layout/printing support for mozPrintCallback. r=roc 2012-08-30 17:24:35 -07:00
Ehsan Akhgari
e368dc9c85 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
3154e1b535 Bug 784004 - Don't include Layers.h everywhere Part 3 r=nical 2012-08-21 00:06:46 -04:00
David Zbarsky
c83e9b7631 Bug 706179 Part 2: Add a BaseTransform and scaling to layers, r=roc, cjones 2012-07-30 19:20:00 -07:00
Mark Finkle
ecceaf8977 Backout 169ff207ed19, a34baed70c1b, f9ccdd490bd7, 39550ed860e6, 2194a2dd66b2, 908eb2e26843, a76e0a267f26 due to mobile viewport bustage (bug 778580) 2012-07-30 14:36:12 -04:00
Aryeh Gregor
d0ad5a7d0c Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
David Zbarsky
3a15cfbf6b Bug 706179 Part 2: Add a BaseTransform to layers r=roc 2012-07-27 13:23:45 -07:00
Ed Morley
3ed23376d4 Backout 1244b8a8e57a (bug 755084), 32d16d0f87c9 (bug 706179), 8548e016d4a9 (bug 768440), 697f5b87eae9 (bug 768440), 808fc2bd4e8c (bug 755084), 54b1484cd125 (bug 755084), 876726b632c0 (bug 706179) for xul android R3 failures 2012-07-25 16:37:04 +01:00
David Zbarsky
6b4c02cd9f Bug 706179 Part 2: Add a BaseTransform to layers to return the layer's transform without scaling applied r=roc 2012-07-25 01:48:10 -07:00
Matt Woodrow
35ca0069c9 Bug 539356 - Part 7 - Store FrameLayerBuilder objects on the LayerManager instead of nsDisplayListBuilder. r=roc 2012-07-17 13:03:51 -04:00
Ehsan Akhgari
97259d4a95 Backout changeset 60affaedccc3 (bug 539356) because of performance and correctness regressions 2012-07-03 20:26:55 -04:00
Ehsan Akhgari
cf18ee9122 Backout changeset f568fc280fb0 (bug 539356) because of performance and correctness regressions 2012-07-03 20:24:55 -04:00
Matt Woodrow
31125260ee Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt 2012-06-30 15:06:11 +12:00
Matt Woodrow
c238df59ea Bug 539356 - Part 7 - Store FrameLayerBuilder objects on the LayerManager instead of nsDisplayListBuilder. r=roc 2012-06-30 15:06:10 +12:00
Ms2ger
c0225966ca Bug 763451 - nsDisplayCanvas::GetOpaqueRegion fails to override nsDisplayItem::GetOpaqueRegion; r=roc 2012-06-21 09:21:55 +02:00
Trevor Saunders
5d33ad118a bug 759033 - nsAccessible -> Accessible and nsAccessibleWrap -> AccessibleWrap r=surkov
--HG--
rename : accessible/src/atk/nsAccessibleWrap.cpp => accessible/src/atk/AccessibleWrap.cpp
rename : accessible/src/atk/nsAccessibleWrap.h => accessible/src/atk/AccessibleWrap.h
rename : accessible/src/base/nsAccessible.cpp => accessible/src/generic/Accessible.cpp
rename : accessible/src/base/nsAccessible.h => accessible/src/generic/Accessible.h
rename : accessible/src/mac/nsAccessibleWrap.h => accessible/src/mac/AccessibleWrap.h
rename : accessible/src/mac/nsAccessibleWrap.mm => accessible/src/mac/AccessibleWrap.mm
rename : accessible/src/msaa/nsAccessibleWrap.cpp => accessible/src/msaa/AccessibleWrap.cpp
rename : accessible/src/msaa/nsAccessibleWrap.h => accessible/src/msaa/AccessibleWrap.h
rename : accessible/src/other/nsAccessibleWrap.cpp => accessible/src/other/AccessibleWrap.cpp
rename : accessible/src/other/nsAccessibleWrap.h => accessible/src/other/AccessibleWrap.h
2012-05-28 21:18:45 -04:00
Gervase Markham
82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Andreas Gal
7db0b87ef1 Do image scaling on the GPU (bug 650988, r=roc,cjones). 2012-05-03 07:05:55 -07:00
Robert O'Callahan
7c34e38876 Bug 733607. Restructure logic to compute snapped bounds of display items in layer coordinates. Moves responsibility for computing snapped bounds from within the display items to callers of GetBounds/GetOpaqueRegion. r=tnikkel
Previously we snapped the results of nsDisplayItem::GetBounds and
nsDisplayItem::GetOpaqueRegion internally. By tracking which display items were
inside transforms, we disabled snapping quite conservatively whenever an ancestor
had a transform, which is undesirable.

With this patch, we don't snap inside GetBounds or GetOpaqueRegion, but just return
a boolean flag indicating whether the item will draw with snapping or not. This flag
is conservative so that "true" means we will snap (if the graphics context has a transform
that allows snapping), but "false" means we might or might not snap (so it's always safe
to return false).

FrameLayerBuilder takes over responsibility for snapping item bounds. When it converts
display item bounds to layer pixel coordinates, it checks the snap flag returned from
the display item and checks whether the transform when we draw into the layer will be
a known scale (the ContainerParameters scale factors) plus integer translation. If both
are true, we snap the item bounds when converting to layer pixel coordinates. With
this approach, we can snap item bounds even when the items have ancestors with active
transforms.
2012-04-10 23:24:18 +12:00
Daniel Holbert
98b0d12882 Bug 732610 - Make nsIFrame::ComputeSize take a bitfield 'aFlags' instead of a bool 'aShrinkWrap'. r=dbaron 2012-03-16 11:01:05 -07:00
David Bolter
ab09888daa Bug 495912 - Expose content in HTML canvas elements. r=bz,roc r=surkov(tests)
layout-mentor: bz (mucho thanks!)

We make html canvas frame a container and render frames for its content which makes a lot of what we need for accessibility "just work".
2012-02-17 23:26:37 -05:00
Ed Morley
8de602546b Backout 547de632a3e2 (bug 495912) for mochitest-a11y orange 2012-02-29 18:42:58 +00:00
David Bolter
6392ae8ed0 Bug 495912 - Expose content in HTML canvas elements. r=bz,roc r=surkov(tests)
layout-mentor: bz (mucho thanks!)

We make html canvas frame a container and render frames for its content which makes a lot of what we need for accessibility "just work".
2012-02-17 23:26:37 -05:00
David Bolter
899b2bf2a0 Bug 705179 - Implement initial canvas accessible and baseline test. r=surkov,ehsan 2011-11-25 11:58:34 -05:00
Ehsan Akhgari
92064e6d3f Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron
Landing on a CLOSED TREE
2011-10-17 10:59:28 -04:00
Michael Wu
d2b70213ac Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones
--HG--
rename : tools/trace-malloc/bloatblame.c => tools/trace-malloc/bloatblame.cpp
2011-09-28 23:19:26 -07:00
Robert O'Callahan
d4259656be Bug 649924. Use image surfaces to implement canvases beyond the texture size limit. r=bas 2011-07-08 22:42:21 +12:00
Robert O'Callahan
50a8bdee8e Bug 637852. Part 17: Tighten up AreLayersMarkedActive so we track exactly what properties are changing. Also, clamp resolution to power-of-2 only if the frame's transform has a scale. r=tnikkel
This lets us avoid clamping the scale in more situations. We should only clamp the scale when we think
the scale is changing due to a changing transform --- the goal of clamping is to not have to redraw the content
too often when the content is zooming in or out.
2011-06-23 00:11:28 +12:00
Robert O'Callahan
723e5c86ee Bug 637852: Part 5: Create ContainerParameters structure to carry resolution scale factors through layer creation. r=tnikkel
This patch shouldn't change any behavior. It just passes the ContainerParameters around, which will contain scale factors that should have been
applied when BuildLayer returns a ContainerLayer.

This patch also adds an aTransform parameter to BuildContainerLayerFor, which nsDisplayTransform uses to set the
transform for the ContainerLayer. This way BuildContainerLayerFor knows what the container's transform is going to be
before constructing the children, which in the next patch will let us construct the children with the right resolution.
2011-06-23 00:11:27 +12:00
Robert O'Callahan
629c1b7e18 Bug 641426. Part 2: Remove a bunch of direct gfxRect::pos/size usage. r=joe 2011-04-19 15:07:21 +12:00
Jan Küchler
c510bc3046 Bug 266236 part 3: Mechanical rename of nsIRenderingContext and nsThebesRenderingContext to nsRenderingContext. Mechanical substitution of nsRefPtr<nsRenderingContext> for nsCOMPtr<nsRenderingContext>.
--HG--
rename : gfx/src/nsThebesRenderingContext.cpp => gfx/src/nsRenderingContext.cpp
extra : rebase_source : 34884bfcafd885feaf73300bc7246cd192062a48
2011-04-07 18:04:40 -07:00
Robert O'Callahan
f55223784a Bug 622072. Part 3: Support empty transactions for canvas layers. r=tnikkel
The basic idea is that whenever a layer transaction updates the window, we clear out the invalidation state for the canvas rendering context,
using a DidTransactionCallback registered on the layer(s) for the canvas, which calls MakeContextClean.

The DidTransactionCallbacks are directed to the user data attached to the Layer, which holds a strong reference to the canvas element. This
ensures that the element lives as long as the layer. Layers are destroyed when the presentation is torn down (including if the frame is destroyed),
so we can't have a leak here. The reference to the canvas element is only strong because the layer might briefly outlive the frame (the layer
won't be destroyed until the next paint of the window).

This patch moves responsibility for calling CanvasLayer::Updated and nsFrame::MarkLayersActive from the canvas context to nsHTMLCanvasElement::InvalidateFrame.
We call Updated on the retained CanvasLayer, if there is one; any other CanvasLayers created for this canvas would only be used once, and have Updated
called on them in BuildLayer when created.
2011-03-28 12:59:47 +13:00
Ehsan Akhgari
acac18d785 Back out bug 622072 because it caused bug 645987 2011-03-29 14:31:53 -04:00
Robert O'Callahan
46f6cf879d Bug 622072. Part 3: Support empty transactions for canvas layers. r=tnikkel
The basic idea is that whenever a layer transaction updates the window, we clear out the invalidation state for the canvas rendering context,
using a DidTransactionCallback registered on the layer(s) for the canvas, which calls MakeContextClean.

The DidTransactionCallbacks are directed to the user data attached to the Layer, which holds a strong reference to the canvas element. This
ensures that the element lives as long as the layer. Layers are destroyed when the presentation is torn down (including if the frame is destroyed),
so we can't have a leak here. The reference to the canvas element is only strong because the layer might briefly outlive the frame (the layer
won't be destroyed until the next paint of the window).

This patch moves responsibility for calling CanvasLayer::Updated and nsFrame::MarkLayersActive from the canvas context to nsHTMLCanvasElement::InvalidateFrame.
We call Updated on the retained CanvasLayer, if there is one; any other CanvasLayers created for this canvas would only be used once, and have Updated
called on them in BuildLayer when created.
2011-03-28 12:59:47 +13:00
Robert O'Callahan
6d646878f1 Bug 630835. Make BuildLayer responsible for setting a visible region on the layer, and let FrameLayerBuilder only reduce it. r=tnikkel,a=blocking
This avoids problems with FrameLayerBuilder making the visible region bigger than we expected, invalidating CONTENT_OPAQUE flags set on the layer.
In particular, we had been using TransformBounds to compute the new visible region, and for non-axis-aligned transforms this gives us a visible
region which contains areas not actually painted by the layer contents.
2011-02-23 18:38:09 +13:00
Alon Zakai
ebf74d5e14 Bug 610727 - Mark canvas layers inactive when relevant. r=roc a=blocking-fennec 2011-02-04 10:11:24 -08:00
Robert O'Callahan
a352316479 Bug 602757. Part 3: Change IsOpaque to GetOpaqueRegion so we can get useful opaque regions for content that uses border-radius. r=tnikkel,sr=dbaron,a=blocking 2011-01-03 14:48:09 +13:00
Felipe Gomes
82fe7096ba Bug 601603. Part 5 - Ensure that the layer that holds the window background is never opaque for glass windows. r=roc a=beta8 2010-10-19 15:02:25 -02:00
L. David Baron
5a012f3090 Fix miscellaneous reflow methods to use new overflow area APIs. (Bug 542595, patch 19) r=roc a2.0=blocking2.0:beta8 2010-10-06 21:25:46 -07:00
L. David Baron
c44e387e04 Clip replaced elements (for now, images, canvases, videos, and windowless plugins) to the border radius. (Bug 485501) r=roc a2.0=blocking:beta6 2010-09-09 08:21:47 -07:00
L. David Baron
977bd2e2c8 Make nsIFrame::DisplaySelectionOverlay take an nsDisplayList* instead of nsDisplayListSet&. (Bug 485501) r=roc a2.0=blocking:beta6 2010-09-09 08:21:46 -07:00
Robert O'Callahan
7be62af7f1 Bug 584282. Use nsDisplayItem::ToReferenceFrame() instead of calling nsDisplayListBuilder::ToReferenceFrame, wherever possible. r=tnikkel,a=dbaron
--HG--
extra : rebase_source : 730ba8640cb37bd8484ff069b5d6fd46d9bc3e84
2010-08-13 22:01:58 +12:00
Robert O'Callahan
33a0aec926 Bug 584282. Add nsDisplayItem::mToReferenceFrame and initialize it in the constructor. r=tnikkel,a=dbaron
--HG--
extra : rebase_source : 496cbde7c495eb8872c3d0ffc0ca4c57c2a6a777
2010-08-13 22:01:13 +12:00
Chris Jones
f16c7feac5 Bug 570620, part a: Fix an assertion that will soon no longer hold and remove obsoleted already_AddRefed idiom in two places. r=roc 2010-08-05 17:11:23 -05:00
Robert O'Callahan
1b38f406bd Bug 564991. Part 23: Introduce the concept of 'inactive' layers. r=mats,sr=dbaron 2010-07-16 09:08:05 +12:00