Commit Graph

428 Commits

Author SHA1 Message Date
Alexis Beingessner
6b38993c8b Bug 1399274 - Block invisible text optimizations when using WebRender. r=jrmuizel
Mostly just threading the TextDrawTarget deeper into the code to use a boolean.
A lot of places are trying to optimize away invisible text!

MozReview-Commit-ID: 89sDAwUv0HA

--HG--
extra : rebase_source : 8d800702232aec6626a33f2d6be893708d0bbfee
2017-09-13 14:05:51 -04:00
Bevis Tseng
c94ae9c213 Bug 1367497 - Part 2: Make gfxFontCache use an expiration tracker that can assert the Servo font metrics mutex is locked. r=bevis,jfkthame
--HG--
extra : source : 26e12505e1aebb4fff765f4248d60dac73a71c48
2017-08-15 10:04:32 +08:00
Sebastian Hengst
55ac9b6fc7 Backed out changeset 26e12505e1ae (bug 1367497) 2017-08-15 18:46:53 +02:00
Bevis Tseng
13f67fed92 Bug 1367497 - Part 2: Make gfxFontCache use an expiration tracker that can assert the Servo font metrics mutex is locked. r=bevis,jfkthame 2017-08-15 10:04:32 +08:00
Bevis Tseng
b82cc3550d Backed out changeset 2ae749fba6a0
--HG--
extra : rebase_source : d111b3773db29497456484f535963f439283433b
2017-08-15 10:45:00 +08:00
Bevis Tseng
5c9d90a951 Bug 1367497 - Part 2: Make gfxFontCache use an expiration tracker that can assert the Servo font metrics mutex is locked. r=bevis,jfkthame 2017-08-15 10:04:32 +08:00
Jonathan Kew
2e91c61468 Bug 1377328 - part 2 - Annotate raw pointers used for refcounted objects in font-related code. r=milan 2017-06-29 17:52:43 -07:00
Jonathan Kew
4ea7df6c56 Bug 1377328 - part 1 - Annotate some font-related helper classes as MOZ_STACK_CLASS. r=milan 2017-06-29 17:52:38 -07:00
Lee Salzman
24cb8efdec Bug 1385029 - remove virtual from gfxFont::GetCairoScaledFont. r=jfkthame
MozReview-Commit-ID: FNXL9aKtlKa
2017-08-07 16:20:48 -04:00
Lee Salzman
a21ad6d19e Bug 1385029 - require implementation of gfxFont::GetScaledFont and remove unnecessary gfxPlatform::GetScaledFontForFont. r=jfkthame
MozReview-Commit-ID: GP1Aekecb0s
2017-08-07 16:20:44 -04:00
Jonathan Kew
5133782794 Bug 1364224 - Reduce refcount churn on gfxFont by using raw pointers where no strong ownership is needed. r=jrmuizel 2017-06-29 15:37:52 -07:00
Jonathan Kew
982e744811 Bug 1376136 - Remove the shapedText flag TEXT_IS_PERSISTENT, as nothing depends on it any longer. r=mats 2017-06-25 09:30:28 +01:00
Jonathan Kew
fd5dc7dd5e Bug 1364089 - Eliminate some unnecessary virtual calls in gfxFont-related code. r=jrmuizel 2017-06-01 15:42:07 +01:00
Morris Tseng
fa0c122cf9 Bug 1365185 - Clear extents cache after pref "gfx.font_rendering.opentype_svg.enabled" is changed. r=jfkthame
MozReview-Commit-ID: E1whRwmuMGu

--HG--
extra : rebase_source : 40d36395cbb32d55200a884971974bb787dc4e45
2017-05-16 13:30:15 +08:00
Jonathan Kew
4b5525bbf7 Bug 1362167 - Use strongly-typed enum classes instead of generic uint16_t fields for the gfxShapedText and gfxTextRun flags. r=jrmuizel 2017-05-04 22:27:05 +01:00
Jonathan Kew
6fc5313103 Bug 1362167 - Split gfxShapedText.mFlags into two 16-bit flags fields, and arrange storage more compactly to reduce size of gfxShapedWord and gfxTextRun objects. r=jrmuizel 2017-05-04 22:25:16 +01:00
Jonathan Kew
25183dff43 Bug 1353000 - Respect the round-to-pixels flags when caching shaped-word data. r=jrmuizel 2017-04-12 14:55:13 +01:00
vincentliu
3b05828b37 Bug 1350677 - Add Labeling for gfxFontCache. r=jfkthame
From cef7c4838ae3efa519e4d20953cac7dbe40d1aca Mon Sep 17 00:00:00 2001
2017-04-13 09:59:05 +08:00
Wes Kocher
1196244596 Backed out 3 changesets (bug 1353000) for devtools failures a=backout CLOSED TREE
Backed out changeset 7ef3333cedf5 (bug 1353000)
Backed out changeset bd127ce305c7 (bug 1353000)
Backed out changeset 10e777bb90dc (bug 1353000)

--HG--
extra : amend_source : 8db7e67b22347962be0fdb055df1bb2c1853ab67
2017-04-12 10:59:12 -07:00
Jonathan Kew
c336bff796 Bug 1353000 - Respect the round-to-pixels flags when caching shaped-word data. r=jrmuizel 2017-04-12 14:55:13 +01:00
Jonathan Kew
6f0d451756 Bug 1352528 - Hoist call to GetRoundOffsetsToPixels out of the inner loop of text shaping. r=jrmuizel 2017-04-03 17:49:17 +01:00
Manish Goregaokar
6be22491bd Bug 1341724 - Part 4: stylo: Make font metrics usage threadsafe; r=heycam
MozReview-Commit-ID: 3EqpUy09UuI
2017-04-10 17:06:19 +08:00
Lee Salzman
a168dcdbf3 Bug 1348980 - implement UnscaledFont API for Moz2D and thebes. r=jfkthame 2017-04-06 17:41:02 -04:00
Paul Bignier
bc0c1045c5 Bug 1352848 - Fix spelling of 'settings' in comment. r=MattN
MozReview-Commit-ID: J6PjvNRKhEm

--HG--
extra : rebase_source : 09e4d07f42767e63a604015d18871ae1fb92bac7
2017-04-03 15:24:46 -07:00
Jeremy Chen
c41d8342dd Bug 1347819 - change nsFont::languageOverride to store uint32_t directly. r=jfkthame
Since font-language-override can only have a single three-letter tag, and it is
eventually converted to uint32_t while creating gfxFontStyle, we should be able
to move the conversion ahead, to an earlier stage.

In this patch, we move the ParseFontLanguageOverride to nsRuleNode, so we could
do the nsString-to-uint32_t conversion during computing time.

MozReview-Commit-ID: LA4Bv3wV7K

--HG--
extra : rebase_source : 48059a9913d58363f78dea59b1b7811d9f038352
2017-03-23 21:59:55 +08:00
Daniel Holbert
9e6a8900f0 Bug 1291483 part 2: Use UniquePtr/MakeUnique more thoroughly in chain-of-custody for gfxFont::mVerticalMetrics. r=jfkthame
This member-var has type 'UniquePtr', but (up until this patch) its value
is set up using "new" and raw pointers. This patch improves that codepath by
using UniquePtr & MakeUnique, for stronger ownership guarantees.

MozReview-Commit-ID: KWZVpvr9bYj

--HG--
extra : rebase_source : 4e46d355078c7da6ae750f3ca06586dc8703e8a7
2017-03-09 16:38:58 -08:00
Carsten "Tomcat" Book
cc77b844e8 Backed out changeset c8bfaf1927b6 (bug 1291483) 2017-03-10 15:47:28 +01:00
Daniel Holbert
9a0f32abc3 Bug 1291483 part 2: Use UniquePtr/MakeUnique more thoroughly in chain-of-custody for gfxFont::mVerticalMetrics. r=jfkthame
This member-var has type 'UniquePtr', but (up until this patch) its value
is set up using "new" and raw pointers. This patch improves that codepath by
using UniquePtr & MakeUnique, for stronger ownership guarantees.

MozReview-Commit-ID: KWZVpvr9bYj

--HG--
extra : rebase_source : 4e46d355078c7da6ae750f3ca06586dc8703e8a7
2017-03-09 16:38:58 -08:00
Daniel Holbert
eb14ae51cf Bug 1329670: Change gfxFont::CopyWithAntialiasOption to return UniquePtr instead of raw pointer. r=jfkthame
MozReview-Commit-ID: B5UNazyXPL2
2017-01-09 09:41:35 -08:00
Jonathan Kew
9317d239af Bug 1321022 pt 2.1 - While we're here, remove an obsolete declaration. r=dholbert 2016-12-03 12:18:31 +00:00
Jonathan Kew
19f9ad164e Bug 1321022 pt 2 - Add an array of font variations to gfxFontStyle. r=dholbert 2016-12-03 12:18:29 +00:00
Jonathan Kew
72436283c9 Bug 1321022 pt 1.5 - Delete the redundant copy constructor in gfxFontStyle (default copy constructor is fine), and rationalize field ordering a bit. r=dholbert 2016-12-03 12:18:28 +00:00
Frédéric Wang
5f755e9bc4 Bug 1305977 - Use HarfBuzz ot-math API to parse the OpenType MATH table. r=jfkthame 2016-11-02 11:47:18 -07:00
Wes Kocher
c91def63e7 Backed out changeset 961a84574836 (bug 1305977) for multiscripts-1.html failures a=backout 2016-11-02 11:45:41 -07:00
Frédéric Wang
1c9167ba68 Bug 1305977 - Use HarfBuzz ot-math API to parse the OpenType MATH table. r=jfkthame
--HG--
extra : rebase_source : 743927b509e8e4b37334c46f32e4e69b3ba35091
2016-10-31 04:18:00 +01:00
Jonathan Kew
c6471e4eeb Bug 1304699 - Pass the proper unicode-range when looking up a font in the global font cache. r=jrmuizel 2016-09-27 01:48:56 +01:00
Phil Ringnalda
340cda4e5f Backed out changeset 66b8ea362db8 (bug 1304699) for build bustage
CLOSED TREE
2016-09-26 18:37:13 -07:00
Jonathan Kew
60fef630a5 Bug 1304699 - Pass the proper unicode-range when looking up a font in the global font cache. r=jrmuizel 2016-09-27 01:48:56 +01:00
Jonathan Kew
993ba1a742 Bug 1296742 - Initialize gfxGDIFont's metrics at construction time, like other platform font subclasses, and remove its no-longer-needed support for init-on-first-use pattern. r=jrmuizel 2016-08-22 21:39:19 +01:00
Jeremy Chen
7fe92af520 Bug 1293210 - add cap height support to nsFontMetrics. r=jfkthame
MozReview-Commit-ID: 8EXWUtbuN3s

--HG--
extra : rebase_source : 120cc3476faae7d63f2e96f2973ea9e6d9a93c16
2016-08-18 17:43:54 +08:00
Emilio Cobos Álvarez
e1e6b574d9 Bug 1288938: layout: Move the GlyphObserver to the text run instead of the frame. r=jfkthame
MozReview-Commit-ID: KphTCkcZeid
2016-08-03 10:53:37 -07:00
Jonathan Watt
db80f397f6 Bug 1058040, part 2 - Rename gfxTextContextPaint to SVGContextPaint and add some code comments. r=dholbert 2016-07-22 14:56:09 +01:00
Lee Salzman
1bc7c6bf66 Bug 1287552 - part 4 - add ScaledFontFontconfig to remember generating FcPattern. r=jrmuizel
MozReview-Commit-ID: AbWjvL5IWCN

--HG--
extra : rebase_source : 9ac07bee30de7b2cdcca84b31c1fb00d9f529c56
2016-07-20 15:07:11 -04:00
Kevin Chen
cac9daeb79 Bug 1275693 - Refactor <canvas> strokeText drawing to re-use gfxTextRun::Draw. r=jfkthame 2016-07-14 02:00:00 +02:00
Lee Salzman
16ca3223d9 Bug 1286317 - part 1 - remove Qt widget usage from gfx. r=jrmuizel 2016-07-12 20:27:57 -04:00
Khaled Hosny
d8d7f64870 Bug 1283932 - support COLR table layers with unset color, r=jfkthame 2016-07-06 10:10:17 +01:00
Jonathan Kew
48c59f0c3d Bug 1282248 - Declare a bunch of gfxTextRun measurement/drawing methods and related helpers as const. r=m_kato 2016-06-27 17:41:55 +01:00
Jeremy Chen
f7a19af3e7 Bug 1248708 - Part2.2: render -webkit-text-stroke property. r=jfkthame 2016-04-23 01:40:39 +08:00
Jonathan Kew
c60f6a1ae4 Bug 1266391 - Introduce an enum class mozilla::unicode::Script, and use this instead of bare integers to specify script codes for better type checking. r=masayuki 2016-04-21 18:58:59 +01:00
Jonathan Watt
c7da421b17 Bug 1266101, part 1 - Remove various bits of dead code related to painting SVG text. r=heycam 2016-04-21 14:39:30 +01:00
Jonathan Kew
4b13ebfd2f Bug 1265452 followup - Make mGlyphExtentsArray an array of UniquePtr. r=jrmuizel 2016-04-19 17:13:28 +01:00
Jonathan Kew
28a9e2cf14 Bug 1265452 - Remove use of nsAutoPtr from gfx/thebes. r=jrmuizel 2016-04-15 20:45:37 +01:00
Birunthan Mohanathas
d7371d07d0 Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Phil Ringnalda
d381b4bca6 Back out 7 changesets (bug 1235261) for cpptest failures in TestTArray
CLOSED TREE

Backed out changeset d66c3f19a210 (bug 1235261)
Backed out changeset 467d945426bb (bug 1235261)
Backed out changeset 32b61df13142 (bug 1235261)
Backed out changeset c50bb8ed4196 (bug 1235261)
Backed out changeset 0ff0fa6fe81f (bug 1235261)
Backed out changeset df70e89669da (bug 1235261)
Backed out changeset 064969357fc9 (bug 1235261)
2016-01-31 10:10:57 -08:00
Birunthan Mohanathas
373593275e Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Nicholas Nethercote
06e901cb9f Bug 1231550 - Use DrawTarget instead of gfxContext and/or nsRenderingContext in many places in font/text code. r=jfkthame.
AutoTextRun now only needs a DrawTarget instead of an nsRenderingContext, and
similar nsRenderingContext/gfxContext-to-DrawTarget replacements can be
propagated a long way up the call graph. This patch replaces 93 occurrences of
nsRenderingContext and 135 occurrences of gfxContext with DrawTarget; that's
13% of them.

The patch is mostly plumbing changes. A couple of not-entirely-plumbing
changes:

- It adds a comment about the null check in
  gfxGlyphExtents::GetTightGlyphExtentsAppUnits().

- A couple of functions simply had an unused gfxContext or nsRenderingContext
  parameter removed, e.g. SetLineBreaks().

--HG--
extra : rebase_source : 8f56994bb4d254a86788b17ab2864ebc758a7e6b
2015-12-15 13:56:41 -08:00
Nicholas Nethercote
3493a38202 Bug 1232822 (part 6) - Move RefCairo() from gfxContext to gfxFont. r=jfkthame.
Because gfxContext will one day disappear, and gfxFont seems like a good place
to move it to.
2015-12-15 20:10:04 -08:00
Nicholas Nethercote
16ee19fe3f Bug 1232822 (part 5) - Moz2Dify GetRoundOffsetsToPixels(). r=jfkthame.
Make GetRoundOffsetsToPixel() take a DrawTarget instead of a gfxContext. This
requires moving it into gfxFontShaper. The only change of note within the
function is the use of aDrawTarget->GetTransform().HasNonTranslation() instead
of CurrentMatrix().HasNonTranslation().
2015-12-15 13:56:40 -08:00
Nicholas Nethercote
62db02a52f Bug 1232822 (part 3) - Moz2Dify gfxFont::CalcXScale() and gfxFont::PostShapingFixup(). r=jfkthame.
This boils down to these two lines being equivalent:

  Size t = aContext->UserToDevice(Size(1.0, 0.0));
  Size t = aDrawTarget->GetTransform() * Size(1.0, 0.0);

The rest is just plumbing.
2015-12-15 13:56:40 -08:00
Nicholas Nethercote
52308b4cb3 Bug 1232822 (part 2) - Moz2Dify SetupGlyphExtents(). r=jfkthame.
The gfxContextMatrixAutoSaveRestore in SetupGlyphExtents() is now obviously not
needed, and the rest is trivial.
2015-12-15 13:56:40 -08:00
Nicholas Nethercote
2a8e0225ac Bug 1232822 (part 1) - Moz2Dify SetupCairoFont(). r=jfkthame.
This is now trivial.
2015-12-15 13:56:40 -08:00
Nicholas Nethercote
e542083969 Bug 1233605 - Cull some uses of gfxContext. r=dholbert.
--HG--
extra : rebase_source : eed590fa5fd806f2ed8d754e139e7dd28a8b52e7
2015-12-17 19:36:09 -08:00
Xidorn Quan
6fdb9fbeaa Bug 1040668 part 10 - Implement emphasis mark rendering. r=jfkthame
--HG--
extra : source : 1c53ccbaece3931ffe1da5610977e92fcce5f3f6
2015-11-28 11:56:33 +11:00
Xidorn Quan
d80f4dcc15 Bug 1040668 part 7 - Add NO_EMPHASIS_MARK flag in CompressedGlyph. r=jfkthame
--HG--
extra : source : 5c13435d3c7ffbc551350beb817a1abb027d5f58
2015-11-28 11:56:33 +11:00
Xidorn Quan
185af4c21b Bug 1040668 part 6 - Add some specifier on gfxTextRun and gfxShapedWord so that compilers are able to reason out certain optimizations. r=jfkthame
--HG--
extra : source : d1f878808c0dc8b159180f387ea563c3561c806a
2015-11-28 11:56:33 +11:00
Xidorn Quan
d70c4e533c Bug 1040668 part 5 - Avoid unnecessary allocation inside EnsureComplexGlyph helper function. r=jfkthame
SetGlyphs does the allocation and copy it into the storage anyway.

--HG--
extra : source : 558a89f9791f297f18ba17d19015e3363b94165b
2015-11-28 11:56:33 +11:00
Xidorn Quan
376e37ea32 Bug 1040668 part 4 - Add helper function for ensuring a glyph is a complex glyph. r=jfkthame
--HG--
extra : source : 8bca69909dc703b60b69eef08fa0be68e3bb16fc
2015-11-28 11:56:33 +11:00
Jonathan Kew
9adf8fcb59 Bug 691581 - Don't let a zero-sized font result in assertions from FUnitsToDevUnitsFactor(). r=jdaggett 2015-11-02 08:36:50 +00:00
Nigel Babu
4988137d3e Backed out changeset 6e7658cff5f5 (bug 691581) for upcoming bustage 2015-11-02 16:13:42 +05:30
Jonathan Kew
ee894e88f7 Bug 691581 - Don't let a zero-sized font result in assertions from FUnitsToDevUnitsFactor(). r=jdaggett 2015-11-02 08:36:50 +00:00
Jonathan Kew
a48628058f Bug 1216427 - part 1 - Ensure a character+VS sequence or a ligated Regional-Indicator flag symbol is deleted as a single unit when backspacing. r=emk 2015-10-26 10:47:16 +00:00
Nathan Froyd
01583602a9 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

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Nathan Froyd
583afa0965 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
John Daggett
6d66c5e817 Bug 1182361 p2 - count generic lookups. r=heycam 2015-09-29 10:51:28 +09:00
Sotaro Ikeda
ba3b3090fd Bug 1187145 - Replace nsBaseHashtable::Enumerate() calls in gfx/ with iterators r=njn 2015-09-24 08:31:30 -07:00
Jonathan Kew
a83eed3993 Bug 1193519 pt 2 - Handle sideways-left orientation in gfx text-drawing code. r=dholbert 2015-09-24 10:23:34 +01:00
Nicholas Nethercote
1059c1de13 Bug 1189156 (part 2) - Don't use enumeration style for nsTHashtable::SizeOf{In,Ex}cludingThis(). r=erahm.
After this change, we have ShallowSizeOf{In,Ex}cludingThis(), which don't do
anything to measure children. (They can be combined with iteration to measure
children.)

And we still have the existing single-arg SizeOf{In,Ex}cluding() functions,
which work if the entry type itself defines SizeOfExcludingThis().

--HG--
extra : rebase_source : f93de9b789c21b1b148bed9de795f663f77c9dd9
2015-07-29 01:50:52 -07:00
Nicholas Nethercote
87b80f8c66 Bug 1188745 - Rename nsTArray::SizeOfExcludingThis() as ShallowSizeOfExcludingThis(). r=froydnj.
This makes it clearer that, unlike how SizeOf*() functions usually work, this
doesn't measure any children hanging off the array.

And do likewise for nsTObserverArray.

--HG--
extra : rebase_source : 6a8c8d8ffb53ad51b5773afea77126cdd767f149
2015-07-28 23:24:24 -07:00
Nicholas Nethercote
87423a76fa Bug 1182962 (part 2) - Use nsTHashtable::Iterator in gfxFont. r=jfkthame.
--HG--
extra : rebase_source : 270c5f024699fc8f922c6612d853872db50f2176
2015-07-13 19:08:16 -07:00
Birunthan Mohanathas
a8939590de Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Nathan Froyd
974d8120f2 Bug 1161627 - part 2 - machine-convert TemporaryRef<T> to already_AddRefed<T>; r=ehsan
This conversion was done with the script:

  find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl' | \
    egrep -v 'cairo-win32-refptr.h|RefPtr.h|TestRefPtr.cpp' | \
    xargs sed -i -e 's/mozilla::TemporaryRef</already_AddRefed</g' \
                 -e 's/TemporaryRef</already_AddRefed</g'

Manual fixups were performed in the following instances:

- We handled mfbt/RefPtr.h manually so as to not convert TemporaryRef itself
  into already_AddRefed.

- The following files had explicit Move() calls added to make up for the lack
  of a copy constructor on already_AddRefed:

  dom/base/ImageEncoder.cpp
  dom/media/MediaTaskQueue.{h,cpp}
  dom/media/webaudio/PannerNode.cpp

- A redundant overload for MediaTaskQueue::Dispatch was deleted.

- A few manual fixups were required in mfbt/tests/TestRefPtr.cpp.

- Comments, using declarations, and forward declarations relating to
  TemporaryRef in dom/canvas/ and gfx/layers/ were changed to refer to
  already_AddRefed.
2015-06-17 10:00:52 -04:00
Michael Layzell
2a4808a906 Bug 1168176 - Mark gfxFontShaper::mFont as MOZ_NON_OWNING_REF. r=jtd
--HG--
extra : rebase_source : 15a007eb060f4274b0dc983d4d520b599efeb768
2015-05-25 11:32:00 -04:00
Michael Layzell
e55646e58d Bug 1167403 - Mark gfxFont::GlyphChangeObserver::mFont as MOZ_NON_OWNING_REF. r=jtd
--HG--
extra : rebase_source : 0b23952004a875aa62a2e30076eda2097afdc9cf
2015-05-22 08:23:00 -04:00
Nicolas Belleville
276b7e52b1 Bug 948466: Rename gfxPangoFonts to gfxFontconfigFonts. r=nical
--HG--
rename : gfx/thebes/gfxPangoFonts.cpp => gfx/thebes/gfxFontconfigFonts.cpp
rename : gfx/thebes/gfxPangoFonts.h => gfx/thebes/gfxFontconfigFonts.h
2015-05-20 17:44:09 +02:00
John Daggett
07a0c560a7 Bug 1056479 p2 - implement platform fontlist based on fontconfig. r=karlt
This patch implements a derived class of gfxPlatformFontList and a set of associated objects that uses fontconfig. It's a replacement for the existing gfxPangoFontGroup and gfxFontconfigUtils code. The fontconfig API is used to lookup all fonts on the system, which are grouped by family name.

Changes due to this patch:
- font style matching, the mapping of style attributes to a specific font, is now handled by the same Gecko code that is used on other plaforms. fontconfig substitutions are handled but fontconfig style matching no longer used.
- downloadable fonts using unicode-range are now supported
- local fullname lookups are only done with the English name of the font, as per the CSS3 Fonts spec, and not only other localized fullnames
- size-specific bitmap fonts are no longer supported
- fonts lacking a Unicode character map are no longer supported
2015-05-13 14:11:25 +09:00
Carsten "Tomcat" Book
f21bf9d148 Backed out changeset 1223b73d62dc (bug 1056479) 2015-05-12 12:21:09 +02:00
John Daggett
da0662d19f Bug 1056479 p2 - implement platform fontlist based on fontconfig. r=karlt
This patch implements a derived class of gfxPlatformFontList and a set of associated objects that uses fontconfig. It's a replacement for the existing gfxPangoFontGroup and gfxFontconfigUtils code. The fontconfig API is used to lookup all fonts on the system, which are grouped by family name.

Changes due to this patch:
- font style matching, the mapping of style attributes to a specific font, is now handled by the same Gecko code that is used on other plaforms. fontconfig substitutions are handled but fontconfig style matching no longer used.
- downloadable fonts using unicode-range are now supported
- local fullname lookups are only done with the English name of the font, as per the CSS3 Fonts spec, and not only other localized fullnames
- size-specific bitmap fonts are no longer supported
- fonts lacking a Unicode character map are no longer supported
2015-05-12 17:44:16 +09:00
Carsten "Tomcat" Book
1cc8234416 Backed out 10 changesets (bug 1056479) for bustage on a CLOSED TREE
Backed out changeset d5b1f2b78915 (bug 1056479)
Backed out changeset bcc65b714dd6 (bug 1056479)
Backed out changeset 0b35e8a463d2 (bug 1056479)
Backed out changeset 0933391809c9 (bug 1056479)
Backed out changeset 93bd67204fac (bug 1056479)
Backed out changeset 5260b93eb0b9 (bug 1056479)
Backed out changeset 130bea3f8623 (bug 1056479)
Backed out changeset 408e078cc18d (bug 1056479)
Backed out changeset a651c240979d (bug 1056479)
Backed out changeset d74ae8fcaac9 (bug 1056479)
2015-05-12 08:25:19 +02:00
John Daggett
f2d632a4ef Bug 1056479 p2 - implement platform fontlist based on fontconfig. r=karlt
This patch implements a derived class of gfxPlatformFontList and a set of associated objects that uses fontconfig. It's a replacement for the existing gfxPangoFontGroup and gfxFontconfigUtils code. The fontconfig API is used to lookup all fonts on the system, which are grouped by family name.

Changes due to this patch:
- font style matching, the mapping of style attributes to a specific font, is now handled by the same Gecko code that is used on other plaforms. fontconfig substitutions are handled but fontconfig style matching no longer used.
- downloadable fonts using unicode-range are now supported
- local fullname lookups are only done with the English name of the font, as per the CSS3 Fonts spec, and not only other localized fullnames
- size-specific bitmap fonts are no longer supported
- fonts lacking a Unicode character map are no longer supported
2015-05-12 14:51:17 +09:00
Jonathan Kew
cdd4e7ba24 Bug 1155261 - Fix computation of glyph extents and text-frame visual overflow for vertical text frames. r=smontagu 2015-04-27 09:45:55 +01:00
L. David Baron
026c5518c7 Bug 1144885 - Treat font-size-adjust: none as separate from font-size-adjust: 0. r=jdaggett
Without the patch, the addition to property_database.js leads to
failures related to the "0.0" and "0" values in
layout/style/test/test_value_computation.html .
2015-04-20 23:10:40 -07:00
Mike Hommey
c39e359c7d Bug 1138293 - Use malloc/free/realloc/calloc instead of moz_malloc/moz_free/moz_realloc/moz_calloc. r=njn
The distinction between moz_malloc/moz_free and malloc/free is not
interesting. We are inconsistent in our use of one or the other, and
I wouldn't be surprised if we are mixing them anyways.
2015-03-31 12:32:49 +09:00
Ehsan Akhgari
883849ee32 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -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 MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Jonathan Kew
323af42ff6 Bug 1128190 - Always use a mask to render shadows for color glyphs, regardless of blur radius. r=roc 2015-02-02 09:19:28 +00:00
Nicholas Nethercote
b31f8f25e5 Bug 1124545 - Avoid creating the mergedFeatures hash table when possible. r=jdaggett.
When scrolling all the way through
https://bugzilla.mozilla.org/show_bug.cgi?id=MNG, |mergedFeatures| gets
initialized more than 50,000 times -- each one involving a heap allocation for
the entry storage -- but it never has anything put into it.

This patch refactors MergeFontFeatures to move |mergedFeatures| inside it. It
now doesn't get created in the common case.

--HG--
extra : rebase_source : 5a8d44b30f90169b70e5f50a5e38bbe57f02b12b
2015-01-21 22:41:02 -08:00
Trevor Saunders
85227ffecb bug 1122065 - use MOZ_OVERRIDE more in gfxish things r=jrmuizel 2015-01-19 17:41:12 -05:00
Robert O'Callahan
0c9928a13e Bug 1099977. Part 2: Make gfxFont::Measure return an empty bounding-box when all glyphs are invisible. r=jfkthame
--HG--
extra : rebase_source : 41a9f586ef2992d96b789d6bd55daae18f15ed2f
2014-11-18 23:23:45 +13:00
Jonathan Kew
e056d920d0 Bug 1062108 - Don't increase glyph advances when applying fake-bold to a fixed-pitch font. r=jdaggett 2015-01-08 12:51:00 +00:00
Jonathan Kew
4fa5c65360 Bug 1116480 - gfxTextRun::Measure needs to account for fake-italic transform when returning the bounding box. r=roc 2014-12-31 22:35:40 +00:00
Jonathan Kew
a896eab424 Bug 1108616 - part 2 - Add an explicitLanguage field to gfxFontStyle, and pass it down from callers. r=dbaron 2014-12-23 12:50:10 +00:00