Граф коммитов

123 Коммитов

Автор SHA1 Сообщение Дата
Ehsan Akhgari 290feb1ade Bug 921876 - Stop #including nsIFrame.h in nsLayoutUtils.h; r=roc
This patch does the following:
* Move nsIFrame::IntrinsicSize to mozilla::IntrinsicSize so that it can
  be forward-declared.
* Move a number of templated inline nsLayoutUtils methods to nsIFrame.
* Use mozilla::layout::FrameChildListID instead of the
  nsIFrame::ChildListID typedef in nsLayoutUtils.h.
* Move nsReflowFrameRunnable to its only user, nsProgressMeterFrame.cpp.
* Make a number of functions requiring nsIFrame.h out-of-line.
* Remove the nsIFrame.h #include from nsLayoutUtils.h and add it to the
  places which require it implicitly.
2013-09-30 17:26:04 -04:00
Nathan Froyd e8316ed759 Bug 914826 - part 4 - fix source files that were bootlegging XPCOM do_* functions via generated ipdl headers; r=ehsan 2013-09-10 16:56:05 -04:00
Daniel Holbert 90f7eae182 Bug 919871: Make .cpp files in layout/generic #include their corresponding .h file first. r=mats 2013-09-24 18:43:43 -07:00
Ehsan Akhgari baf3a129ad Bug 907883 - Minimize #includes in layout/generic; r=roc
--HG--
extra : rebase_source : 5e87b764a12b05aff477c71547e2131be67ca93b
2013-08-22 14:32:52 -04:00
Kan-Ru Chen (陳侃如) 41345e7739 Bug 845169 - Update touch region from remote frame. r=roc 2013-08-13 15:56:57 +08:00
Mats Palmgren 2000b88d54 Bug 866785 - Move repeated nsIFrame::List implementations code to a new method, ListGeneric, for re-use. Cleanup and improve the code a bit. r=roc
Specifically:
* move all the frame dump methods to nsIFrame. Especially nsFrame::ListTag
  was annoying, often requiring a cast to nsFrame*.
* print common values in the same order for all types of frames
* print fluid continuations as "next-in-flow=%p" and non-fluid as
  "next-continuation=%p" (as before)
* print the style-context more compactly, e.g.
  "[sc=0x7faa6b60e0a0] pst=:first-line" becomes
  "[sc=0x7faa6b60e0a0:first-line]"
* suppress printing visual/scroll-overflow rects when they are identical
  to mRect and do the same for nsLineBox::List where it was especially
  hard to see which lines actually had real overflow
* fix a bug that printed the child list name at the far right when the
  principal list was empty (making it hard to see)
* print the address of child lists (other than the principal list) to
  help debug frame list property bugs
* s/NS_IMETHODIMP/void/
2013-04-30 20:38:52 +02:00
Robert O'Callahan 5c7181de0f Bug 858803. Fix coordinate system of subdocument frame bounds. r=mattwoodrow
--HG--
extra : rebase_source : 3fd0436f141542dcf50f318a47670329c9c7a814
2013-04-10 00:30:51 +12:00
Robert O'Callahan a949bd58de Bug 841192. Part 15: Move DisplayListClipState clipping methods to AutoSaveRestore and AutoClipMultiple helper classes for safer usage. r=mattwoodrow
--HG--
extra : rebase_source : aa674d4fa93f1b7c2b4dd84ba8d888cc9f289265
2013-04-05 00:36:45 +13:00
Robert O'Callahan 613ea8adbd Bug 841192. Part 14: Convert all usage of nsDisplayClip(RoundedRect) to use DisplayListClipState/DisplayItemClip. r=mattwoodrow
This patch does several things. Sorry.

In BuildDisplayList implementations, instead of wrapping display items in nsDisplayClip, we
push clip state onto the nsDisplayListBuilder and give the display items an
explicit clip when they're created.

In FrameLayerBuilder, we use the explicit clips we find on display items instead of
computing our own.

We remove nsDisplayClip and everything that depends on it.

We remove ExplodeAnonymousChildLists. With nsDisplayClip gone, and
nsDisplayOptionEventGrabber removed in a previous patch, there are no
anonymous child lists.

nsDisplayItem::TryMerge implementations need to make sure they have the same
clip before being merged.

I ripped out the part of PruneDisplayListForExtraPage that adjusts clip rects.
As far as I can tell, it isn't actually necessary.

--HG--
extra : rebase_source : 6f3988b385d0ac54ab26fad10b12173884441f48
2013-03-04 22:56:02 +13:00
Robert O'Callahan bbcb7c3d75 Bug 841192. Part 1: Make <frame> elements behave more like <iframe>s, in particular supporting padding and borders (but not border-radius). r=mats
--HG--
extra : rebase_source : b49a430b7a54bc0579f4f109afa001634a2b8930
2013-04-03 00:03:03 +13:00
Mats Palmgren dea596bdaa Backout rev 85397e0a6dba - wrong patch. r=me 2013-03-23 21:45:53 +01:00
Mats Palmgren 83a872ae97 Bug 851847 - Optimize nsBlockFrame::StealFrame when removing a normal flow child. r=bzbarsky 2013-03-23 21:10:34 +01:00
Boris Zbarsky 7f102d7f2d Bug 852428 part 2. Make nsIFrame::Init infallible. r=dholbert 2013-03-19 21:47:48 -04:00
Boris Zbarsky 1b1b29c5e2 Bug 852428 part 1. Make CreateViewForFrame infallible. r=dholbert 2013-03-19 21:47:47 -04:00
Timothy Nikkel d725bb6cb7 Bug 846888. Part 1. Update the in popup frame state bits when we swap docshells. r=mattwoodrow 2013-03-04 13:49:39 -06:00
Timothy Nikkel 8729dcd152 Bug 689623. Part 6. Keep a list of visible images on the presshell and code to manage it. r=mats 2013-02-24 18:59:22 -06:00
L. David Baron c5b9eee040 Bug 781360 patch 3: Rename {nsIFrame,nsStyleContext,nsComputedDOMStyle}::GetStyle* to Style*, since they can never return null. r=dholbert
Except for the changes in:
  layout/generic/nsIFrame.h (part)
  layout/style/nsComputedDOMStyle.h (all)
  layout/style/nsRuleNode.cpp (part)
  layout/style/nsStyleContext.cpp (part)
  layout/style/nsStyleContext.h (part)
(see patch 3b in the bug), this patch was written with the sed script:
s/\<GetStyle\(Font\|Color\|List\|Text\|Visibility\|Quotes\|UserInterface\|TableBorder\|SVG\|Background\|Position\|TextReset\|Display\|Content\|UIReset\|Table\|Margin\|Padding\|Border\|Outline\|XUL\|SVGReset\|Column\)\>/Style\1/g
2013-02-16 13:51:02 -08:00
Robert O'Callahan 42e294f8cb Bug 840902. Part 2: Remove nsresults from various display list methods. r=mattwoodrow
--HG--
extra : rebase_source : de498510bf8d85d9b0b2fab0137ef3be01c9adfa
2013-02-15 00:12:27 +13:00
Robert O'Callahan 5c77da3630 Bug 840902. Part 1: Stop checking the results of various display list methods. r=mattwoodrow
--HG--
extra : rebase_source : 50a3d6809ef76a25a3d02d91f2873d9ba11fdc56
2013-02-15 00:08:08 +13:00
Daniel Holbert 9a11e7cf68 Bug 836957 part 2: Remove unnecessary nsIFrame::GetSkipSides() overrides whose implementations are in .cpp files. r=mats 2013-02-04 08:17:20 -08:00
Cervantes Yu f572ffaeb8 Bug 820571: Don't show remote frame on restyles until reflow finished. r=roc
Original work from :roc.
Add check in nsFrameLoader::ShowRemoteFrame() so restyle of subdocument frames
doesn't resize remote content until first reflow finished and size is decided.

--HG--
extra : rebase_source : 24959ad409eb4e8993ae9eb0a82f5d670866ba54
2013-01-10 15:23:55 +08:00
Robert O'Callahan 970988bc3c Bug 826632. Part 1: Merge nsIViewManager into nsViewManager. r=tnikkel
--HG--
rename : view/public/nsIViewManager.h => view/public/nsViewManager.h
extra : rebase_source : d00947c925b17f860fcdc0e12b1ec3cc31b7c630
2013-01-05 16:12:24 +13:00
Phil Ringnalda d44dff5096 Back out 5e76dfb1d426 (bug 826635) and 0df74b1a4543:20df426b6111 (bug 826632) for bustage
CLOSED TREE
2013-01-04 21:30:14 -08:00
Robert O'Callahan 0bda13504b Bug 826632. Part 1: Merge nsIViewManager into nsViewManager. r=tnikkel
--HG--
rename : view/public/nsIViewManager.h => view/public/nsViewManager.h
extra : rebase_source : 85587555e1f202809cd39fe899570644e6ca4eb3
2013-01-05 16:12:24 +13:00
Trevor Saunders 09f3b656b4 bug 825419 - outparamdel nsIDocShell::GetPresShell() r=smaug 2012-12-28 20:56:42 -05:00
Robert O'Callahan 943cb99eff Bug 825866. Part 8: Mass-rename of nsIView to nsView. r=tnikkel
This was autogenerated by basically replacing all occurrences of the word "nsIView" with nsView.

--HG--
rename : view/public/nsIView.h => view/public/nsView.h
2013-01-04 02:23:11 +13:00
Alexander Surkov 9ca55cbd90 Bug 810572, part 2.5 - rename AccType constants again, r=tbsaunde, sr=roc 2012-12-18 10:25:52 +09:00
Alexander Surkov f52aca4834 Bug 810572, part2 - remove 'Accessible' postfix from AccTypes constants, r=tbsaunde, sr=roc 2012-12-12 19:04:12 +09:00
Scott Johnson 948f478584 Bug 812372: Rename DocumentViewerImpl to nsDocumentViewer for consistency. [r=ehsan] 2012-11-28 18:26:39 -06:00
Matt Woodrow 3f615fa660 Bug 810592 - Make nsSubDocumentFrames that are actively scrolling build their own layer. r=roc 2012-11-22 18:33:33 +13:00
Ed Morley 68f1c3e84e Backout d30b99cfd933 (bug 802385), 58ce0ddf7611 (bug 810275), 1c96b4a67d38 (bug 810592) for reftest failures 2012-11-22 09:59:23 +00:00
Matt Woodrow e0d92d15d0 Bug 810592 - Make nsSubDocumentFrames that are actively scrolling build their own layer. r=roc 2012-11-22 18:33:33 +13:00
Vivien Nicolas 665cccfa66 Bug 808724 - Application with embed-apps permission can not use the mozpasspointerevents attribute. r=roc 2012-11-09 22:46:28 +01:00
Robert O'Callahan 9a45cc9183 Bug 796452. Add mozpasspointerevents attribute for IFRAMEs in chrome windows. r=mats 2012-11-02 23:42:59 +13:00
Trevor Saunders 244a675d42 bug 542039 - accessible object types r=surkov, roc 2012-09-28 17:53:44 -04:00
Kyle Huey 43e58e33c8 Bug 760331: Coalesce data for inline style across nodes. r=bz
This patch enables sharing of an nsAttrValue's MiscContainer between nodes for style rules.  MiscContainers of type eCSSStyleRule are now refcounted (with some clever struct packing to ensure that the amount of memory allocated for MiscContainer remains unchanged on 32 and 64 bit).  This infrastructure can be used to share most MiscContainer types in the future if we find advantages to sharing other types than just eCSSStyleRuley.  A cache mapping strings to MiscContainers has been added to nsHTMLCSSStyleSheet.  MiscContainers can be shared between nsAttrValues when one nsAttrValue is SetTo another nsAttrValue or when there is a cache hit in this cache.  This patch also adds the ability to tell a style rule that it belongs to an nsHTMLCSSStyleSheet, with appropriate accessor functions to separate that from the existing case of belonging to an nsCSSStyleSheet.

The primary use case is to reduce memory use for pages that have lots of inline style attributes with the same value.  This can happen easily with large pages that are automatically generated.  An (admittedly pathological) testcase in Bug 686975 sees over 250 MB of memory savings with this change.  Reusing the same MiscContainer for multiple nodes saves the overhead of maintaining separate copies of the string containing the serialized value of the style attribute and of creating separate style rules for each node.  Eliminating duplicate style rules enables further savings in layout through style context sharing.  The testcase sees the amount of memory used by style contexts go from over 250 MB to 10 KB.

Because the cache is based on the text value of the style attribute, it will not handle attributes that have different text values but are parsed into identical style rules.  We also do not attempt to share MiscContainers when the node's base URI differs from the document URI.  The effect of these limitations is expected to be low.
2012-09-30 09:40:24 -07:00
Matt Woodrow 5730a3f4b2 Bug 539356 - Part 9f - Compute the invalid area of the layer tree and pass this to the widget. r=roc 2012-08-29 17:47:18 +12:00
Matt Woodrow cee1aa3599 Bug 539356 - Part 9c - Remove old invalidation code. r=bz 2012-08-29 17:39:31 +12:00
Matt Woodrow 2d57efa896 Bug 539356 - Part 9b - Add new frame invalidation API. r=roc 2012-08-29 17:39:01 +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
Chris Lord b38c2c5cad Bug 788202 - Add optional subdocument traversal to nsIFrame::List. r=bz
Add subdocument frame traversal to nsIFrame::List, controlled via an optional
flag.
2012-09-19 15:36:35 +01:00
Chris Lord d5bcfa09f8 Backout bug 788202 for build failures. 2012-09-19 14:05:26 +01:00
Chris Lord f89f65818b Bug 788202 - Add optional subdocument traversal to nsIFrame::List. r=bz
Add subdocument frame traversal to nsIFrame::List, controlled via an optional
flag.
2012-09-19 12:39:53 +01:00
Matt Woodrow 464976376b Bug 788044 - Make transformed frames the reference frame for their display list tree. r=roc 2012-09-16 22:32:59 +12:00
Robert O'Callahan 33cd6a744c Bug 787089. Rip out mUpdatePluginGeometryForFrame optimization. It's not known to be a significant win, and creates problems when prescontext ancestor chains are broken; the complexity probably isn't worthwhile. Also, soon (or now) we can rework plugin bounds computation to be use the display list built for rendering. r=matspal
--HG--
extra : rebase_source : 0394fcb5111b8b96b5f8ce48e20d6e5503f9ccf7
2012-09-05 22:30:10 +12:00
Boris Zbarsky 25a4faafba Bug 787131. Move management of primary content state stuff from the nsSubDocumentFrame into the nsFrameLoader, so it works on display:none elements. r=jlebar 2012-09-04 23:00:26 -04:00
Chris Pearce d17baf9224 Bug 781279 - Forget update plugin geometry frame when presentation detaches. r=roc 2012-08-24 23:12:21 +12:00
Jonathan Kew c835e9d8d0 bug 784837 - call SetPrimaryFrame earlier during nsSubDocumentFrame::Init. r=roc 2012-08-24 10:16:15 +01: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