Commit Graph

53 Commits

Author SHA1 Message Date
Matt Woodrow
ab9ffdd66a Bug 836179 - Add WriteDebugInfo so that display items can add extra information when printing display lists. r=roc 2013-01-30 18:07:30 +13:00
Robert O'Callahan
bc3c026926 Bug 805331. Part 1: Refactor nsDisplayList::GetList
Renames GetList to GetSameCoordinateSystemChildren, and adds an assertion
to verify that the children have the same reference frame as the parent.
Adds nsDisplayList::GetChildren to return whatever children there are.
Obsoletes nsDisplayTransform::GetStoredList.
2012-11-03 01:59:03 +13: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
Chris Lord
6dcfe08a38 Bug 775431 - Add missing indentation for MOZ_DUMP_PAINT_LIST. r=mattwoodrow
This part of the patch got lost rebasing somewhere.
2012-08-08 12:46:55 +01:00
Chris Lord
80d1acdf14 Bug 775431 - Make MOZ_DUMP_PAINT_LIST output terminal-friendly. r=mattwoodrow
Only output in HTML if we're dumping to a file, otherwise output as it did
before the HTML output change was made.
2012-08-07 18:57:26 +01:00
Aryeh Gregor
8b4a23fc4c Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
Matt Woodrow
0aab9f0d12 Bug 741682 - Add component alpha bounds and opaque regions to display list dumping. r=roc 2012-07-23 15:00:36 +12:00
Matt Woodrow
090f54cfff 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
80fdbb635f Backout changeset 60affaedccc3 (bug 539356) because of performance and correctness regressions 2012-07-03 20:26:55 -04:00
Matt Woodrow
90311bee4c Bug 539356 - Part 7 - Store FrameLayerBuilder objects on the LayerManager instead of nsDisplayListBuilder. r=roc 2012-06-30 15:06:10 +12:00
Jonathan Watt
131c149f2a Bug 767388 - Kill NS_DEBUG. r=bz. 2012-06-25 20:59:42 +01:00
Gervase Markham
cb6a072c2a Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Robert O'Callahan
e852e3c17d Bug 749075. Part 1: Refactor the nsDisplayItem API for testing whether the item needs to be rendered to a transparent surface. r=mattwoodrow
Currently we return an extra out parameter on GetOpaqueRegion. This is ugly and it's also going to be inefficient
because in a followup patch I'm going to avoid calls to GetOpaqueRegion, but we still need to know whether the item
needs a transparent surface. So this patch removes that out parameter. Instead, we rely on the fact that only
Windows' glass-window-background display item needs to force a transparent surface, and there can only be one
of those per window. So we store a reference to it in the nsDisplayListBuilder if there is one, and then we can
efficiently tell if any leaf display item is the one that forces a transparent surface. For display items that
wrap a list, we continue to store whether they need to force a transparent surface in a boolean in the list.
2012-05-03 16:29:05 +12:00
Robert O'Callahan
fb6a78d67b 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
Wes Johnston
02d6d4dde0 Backed out changeset f5d6cc2e4726 2012-04-09 10:44:32 -07:00
Wes Johnston
f1b3626866 Bug 740218 - Support transactions in sqlitebridge and use them. r=gcp,rnewman,lucasr 2012-04-09 10:08:37 -07:00
Matt Woodrow
8479f565f2 Bug 700240 - Print display lists to a file. r=roc,bjacob 2012-03-01 21:26:09 +13:00
Matt Woodrow
5fcf29f23f Bug 700240 - Print nsSVGEffects types. r=roc 2011-11-17 16:44:16 +13:00
Matt Woodrow
a894703f8b Bug 700240 - Make display list debugging independent of DEBUG. r=khuey,roc 2011-11-17 16:44:16 +13:00
Michael Wu
0fe7772ece Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones 2011-09-28 23:19:26 -07:00
Matt Woodrow
465e7e7515 Bug 505115 - Part 14b - Layout support for -moz-transform-style. r=roc 2011-08-27 12:01:46 +12:00
Craig Topper
d1acc42088 Bug 654369 - Part 11: Remove OOM checks from layout/base r=bz 2011-04-28 22:02:40 -07:00
Robert O'Callahan
923e237a78 Bug 637852. Part 12: Dump layer trees and display lists to stdout instead of stderr so that they stay in order with window.dump() and other output. r=tnikkel 2011-06-23 00:11:28 +12:00
Robert O'Callahan
c0c1b3ee4c Bug 579808. Fix bounds for nsDisplayTransform and nsDisplayPlugin. r=tnikkel a=blocking-betaN+ 2011-01-06 19:38:22 -06:00
Robert O'Callahan
ff4228ec7d Bug 620610. When dumping display lists, include which layer each item ended up in. r=tnikkel,a=debug-only 2011-01-04 16:56:57 +13:00
Robert O'Callahan
016b416f90 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
L. David Baron
9fdb9c1e50 Add a (wrapping) display item that clips its contents to the curvature of a border-radius. (Bug 459144, patch 13) r=roc a2.0=blocking2.0:beta6 2010-09-09 08:21:46 -07:00
Robert O'Callahan
9325f060d3 Bug 590468. Part 6: Fix setting of nsDisplayList::mOpaque, and return it from nsDisplayWrapList::IsOpaque. r=tnikkel 2010-08-27 18:15:08 -05:00
Robert O'Callahan
6dae352ca6 Bug 579258. Change IsVaryingRelativeToMovingFrame to take the 'moving frame' as a direct parameter instead of getting it from the builder. r=tnikkel,a=joe 2010-08-13 21:54:37 +12:00
Timothy Nikkel
7998768f1e Bug 563878. Part 13. Implement zoom display list item to handle document hierarchies where zoom is not constant. r=mats sr=roc 2010-07-18 21:23:48 -05:00
Robert O'Callahan
d891d3198f Bug 564991. Part 31: Don't cull display items in nsDisplayList::ComputeVisibility. r=mats 2010-07-16 09:08:09 +12:00
Robert O'Callahan
43da4f4722 Bug 561959. Replace solid-color ThebesLayers with ColorLayers. r=dbaron 2010-05-13 12:56:11 +12:00
Robert O'Callahan
db9a84a471 Backed out changeset 054698c2cb8f 2010-05-13 14:21:53 +12:00
Robert O'Callahan
d01d529e1b Bug 561959. Replace solid-color ThebesLayers with ColorLayers. r=dbaron 2010-05-13 12:56:11 +12:00
Zack Weinberg
18f8b8b129 Bug 510651: Fold nsIFrameDebug into nsFrame. r=dbaron sr=mrbkap 2009-08-20 14:52:48 -07:00
tn
253ae18158 Bug 486644. Improve display list debug dumps for nsDisplayTransform. r=roc 2009-04-06 12:37:04 +12:00
Benjamin Smedberg
0f95227641 Bug 396185 - Make nsIFrame derivatives and helper abstract classes use a different dynamic-cast system than nsISupports:
* we know all types frames may be cast to at compile time, so instead of extensible GUID IIDs, use a big enum (see nsQueryFrame::FrameIID)
* eliminate all vestiges of refcounting, since frames aren't refcounted

Some frames (SVG frames in particular) still implement nsISupports-derived interfaces, for example nsISVGValue. There is a FrameIID for nsISVGValue that lets you go from a frame to the XPCOM interface, but you can't query back.

r+sr=roc

nsITextControlFrame didn't have an IID the first time around, but this wasn't a compile error because nsITextControlFrame::kFrameIID inherited from nsIFormControlFrame::kFrameIID. I've added a static analysis pass to verify the correct behavior, since I can't figure out a way to make the compiler do it.
2009-01-12 14:20:59 -05:00
Benjamin Smedberg
7a084ac404 Backed out changeset 4c4df6ed1b41 - Bug 396185 - Make nsIFrame not inherit from nsISupports due to mochitest failures... these appear to be crashes in nsGenericHTMLElement::GetEditorInternal. 2009-01-09 11:35:24 -05:00
Benjamin Smedberg
991a16d8bc Bug 396185 - Make nsIFrame derivatives and helper abstract classes use a different dynamic-cast system than nsISupports:
* we know all types frames may be cast to at compile time, so instead of extensible GUID IIDs, use a big enum (see nsQueryFrame::FrameIID)
* eliminate all vestiges of refcounting, since frames aren't refcounted

Some frames (SVG frames in particular) still implement nsISupports-derived interfaces, for example nsISVGValue. There is a FrameIID for nsISVGValue that lets you go from a frame to the XPCOM interface, but you can't query back.

r+sr=roc

This patch locally causes two REFTEST-UNEXPECTED-PASS for Bidi stuff. It's possible that I accidentally fixed a bug, but I'm not sure, so I'm going to wait for the tinderboxes to confirm my local results.
2008-11-05 14:25:30 -05:00
ecc6e0e95a Bug 424915. Improve display list analysis so that sites with content covered by the scrolling element, such as GMail, can use bitblit scrolling. r+sr=dbaron,a=beltzner 2008-04-10 20:46:37 -07:00
98de634631 Bug 348748 - Replace all instances of NS_STATIC_CAST and friends with C++ casts (and simultaneously bitrot nearly every patch in existence). r=bsmedberg on the script that did this. Tune in next time for Macro Wars: Episode II: Attack on the LL_* Macros. 2007-07-08 00:08:04 -07:00
dbaron@dbaron.org
2441f6a36b One-line descriptions of files, partly because they show up in LXR. 2006-03-30 05:56:38 +00:00
roc+@cs.cmu.edu
a1b6a30f14 Bug 317375. Reorganize frame painting and mouse event targeting around frame display lists. Some review from dbaron, lots of testing help from Martijn, Julien and others 2006-01-26 02:29:17 +00:00
gerv@gerv.net
a1ec040a65 Bug 236613: change to MPL/LGPL/GPL tri-license. 2004-04-18 14:30:37 +00:00
dbaron@dbaron.org
cb8b9c7c57 Bug 178643: Remove uses of NS_INIT_ISUPPORTS, since it is no longer needed. r=timeless sr=jag 2003-01-08 21:07:51 +00:00
dougt@netscape.com
46ce738546 166917. Clean up xpcom SDK includes. r=rpotts@netscape.com, sr=alecf@netscape.com, a=rjesup@wgate.com 2002-09-07 17:13:19 +00:00
gerv@gerv.net
58d409fba9 Relicensing Round 1, Take 2. Most C-like NPL files -> NPL/GPL/LGPL. Bug 98089. 2001-09-28 20:14:13 +00:00
dbaron@fas.harvard.edu
4c647ea08a Replace uses of deprecated NS_IMPL_ISUPPORTS and NS_IMPL_QUERYINTERFACE macros with NS_IMPL_{ISUPPORTS,QUERYINTERFACE}{1,0}. r=jag rs=brendan b=45797 2001-08-21 01:48:11 +00:00
rods@netscape.com
c0ed0d0271 removing most all NS_DEFINE_IID and replacing them with NS_GET_IID macros
Bug 61274, r=buster sr=waterson
2001-01-04 20:44:42 +00:00
dbaron@fas.harvard.edu
a0a4251632 Event Target Debugging (b=18175), a debugging feature to help with fixing bugs where events are going to the wrong elements. It shows (like Visual Debugging) which frame is receiving events, and one can therefore move the mouse over the page to see what frame gets events. All the code is #ifdef NS_DEBUG. However, it is not yet hooked up to the viewer menu (to be checked in later).
r=joki
2000-02-03 02:49:58 +00:00