Commit Graph

493 Commits

Author SHA1 Message Date
Jonathan Kew
ebf32942b2 Bug 1238243 - Don't filter out Hangul jamo fillers as 'ignorable', because the font may require them to provide advance width. r=xidorn 2016-03-21 07:27:46 +00:00
Xidorn Quan
1a5d64446b Bug 1251995 part 3 - Use struct to pass params for gfxTextRun::Draw. r=jfkthame
MozReview-Commit-ID: HAqtS3VXPHH

--HG--
extra : source : e6a45ca0a21666b4e01c217e0bb42772e4dd918f
2016-03-08 15:56:18 +08:00
Xidorn Quan
b3ea3fa801 Bug 1251995 part 2 - Add gfxTextRun::Range to replace parameter pairs like (offset, length) and (start, end). r=jfkthame
Although this makes some places more complicated, code should generally
be simpler and clearer. It could slightly improve performance on x64 for
functions with more than four parameters, since it makes more data be
passed via registers rather than the stack.

MozReview-Commit-ID: D0GM2Jyrr6W

--HG--
extra : source : bd88a2e478e23edf1845f724a32fef908c8cc007
2016-03-08 15:56:18 +08:00
Carsten "Tomcat" Book
b9f86983b1 Backed out changeset bf004c055beb (bug 1251995) 2016-03-07 12:18:19 +01:00
Carsten "Tomcat" Book
1d0a6281ac Backed out changeset 3f9fbbef0294 (bug 1251995) 2016-03-07 12:18:17 +01:00
Xidorn Quan
11bea4b5a2 Bug 1251995 part 3 - Use struct to pass params for gfxTextRun::Draw. r=jfkthame
MozReview-Commit-ID: HAqtS3VXPHH

--HG--
extra : rebase_source : de01c02d3baf3e8c648d6301bd6ff283d76ae212
2016-02-29 19:06:05 +08:00
Xidorn Quan
8e3206382b Bug 1251995 part 2 - Add gfxTextRun::Range to replace parameter pairs like (offset, length) and (start, end). r=jfkthame
Although this makes some places more complicated, code should generally
be simpler and clearer. It could slightly improve performance on x64 for
functions with more than four parameters, since it makes more data be
passed via registers rather than the stack.

MozReview-Commit-ID: D0GM2Jyrr6W

--HG--
extra : rebase_source : 29961e56b5fe14b244046b3dc52b1f922c206218
2016-02-29 16:50:17 +08: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
7d9b6c8298 Bug 1234418 - Not trust glyph run starts from a cluster start character. r=jfkthame
--HG--
extra : source : f5014f1b1a5b7cda0c2631aef7b3f2480b0f42ed
2015-12-29 10:52:06 +11:00
Wes Kocher
35c7e42d9d Backed out changeset 3242bee2d956 (bug 1234418) for windows build bustage
--HG--
extra : commitid : FtpnZwAEEIm
2015-12-28 15:32:12 -08:00
Xidorn Quan
845f0ba847 Bug 1234418 - Not trust glyph run starts from a cluster start character. r=jfkthame
--HG--
extra : source : 9c199fbc892dd5712454f0efbcb286c9fc03ff00
2015-12-29 09:48:37 +11:00
Nicholas Nethercote
a4dc4a929c Bug 1232576 (part 2) - Rename gfxContext::GetCairo() as GetRefCairo() and make it static. r=jfkthame.
This means its callers now need a DrawTarget instead of a gfxContext.

--HG--
extra : rebase_source : 909cbf179cfbffa47fb70f417b2f50b641534a02
2015-12-14 22:26:23 -08:00
Nicholas Nethercote
02842898a0 Bug 1230413 (part 3) - Remove unused gfxContext argument from SetSpaceGlyphIfSimple(). r=jfkthame.
--HG--
extra : rebase_source : fbd23567601680bd165a72abf1ca6a70f2e3a453
2015-12-06 14:13:25 -08:00
Nicholas Nethercote
adb5b7b913 Bug 1229202 (part 6) - Remove two nasty matrix reinterpret_casts. r=mattwoodrow.
--HG--
extra : rebase_source : d79b0204de4edde3e137dec764acdf82fdce828e
2015-12-02 15:32:17 -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
Nicholas Nethercote
2b25a153e9 Bug 1223215 (part 3) - Moz2Dify DeviceToUser(gfxSize) and UserToDevice(gfxSize). r=jrmuizel.
--HG--
extra : rebase_source : 360cd372afd0b6e521ece5d0294dfcd160bc11ac
2015-11-08 21:03:40 -08: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
Chris Peterson
0bd9ccc913 Bug 1215898 - Fix clang's -Wimplicit-fallthrough warnings in gfx/thebes. r=jdaggett r=jmuizelaar
gfx/thebes/gfxContext.cpp:1415:9 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
gfx/thebes/gfxContext.cpp:1419:5 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
gfx/thebes/gfxFont.cpp:473:9 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
gfx/thebes/gfxFont.cpp:481:9 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
gfx/thebes/gfxFont.cpp:2999:13 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
gfx/thebes/gfxTextRun.cpp:1720:13 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
2015-10-17 13:28:05 -07: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
John Daggett
f4458274bd Bug 543715 p1 - distinguish between italic and oblique. r=jfkthame 2015-10-19 11:16:43 +09:00
Phil Ringnalda
adfbc1f710 Back out 2 changesets (bug 543715) because Mulet is why we can't have nice things
Backed out changeset 2d1d8e9b095c (bug 543715)
Backed out changeset bc90276ec090 (bug 543715)
2015-10-18 11:22:22 -07:00
John Daggett
72b6bcd6d6 Bug 543715 p1 - distinguish between italic and oblique. r=jfkthame 2015-10-18 22:17:46 +09: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
Jonathan Kew
3211a0b116 Bug 1211867 - Use the font's NBSP glyph (if present) rather than rendering NBSP using the standard <space> glyph. r=jdaggett 2015-10-14 16:00:35 +01:00
Wes Kocher
5166673512 Backed out changeset acd7efb271c8 (bug 1211867) 2015-10-14 09:04:27 -07:00
Jonathan Kew
573a197e03 Bug 1211867 - Use the font's NBSP glyph (if present) rather than rendering NBSP using the standard <space> glyph. r=jdaggett 2015-10-14 16:00:35 +01:00
Nicholas Nethercote
1dbfbe1606 Bug 1209351 (part 3) - Optimize nsTHashTable::RemoveEntry() usage in gfx/. r=jrmuizel.
--HG--
extra : rebase_source : 6de68bea02948d4a1e886da3f9b05d46c9762463
2015-09-24 19:07:22 -07: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
6f036921dc Bug 1203427 (part 1) - Add nsExpirationTracker::mName. r=froydnj.
There are many sub-classes of nsExpirationTracker. In order to distinguish them
nicely in the logging of timer firings, it's necessary to manually name each
one. (This wouldn't be necessary if there was a way to stringify template
parameters, but there isn't.)

--HG--
extra : rebase_source : 89b99e9dbb2a806bd21145d04a5e023794643b61
2015-09-09 21:07:07 -07:00
Frédéric Wang
76887aac08 Bug 1170782 - Do not rely on the presence of a MATH table to use typo metrics. r=karlt 2015-08-27 01:57:00 -04:00
Jonathan Kew
d1dd2af9df Bug 1194763 - Ensure non-cluster-start flag is set properly for a run-initial supplementary-plane combining mark when shaping text. r=jdaggett 2015-08-21 09:57:01 +01:00
Aryeh Gregor
15205c18ac Bug 1179451 - Part 4: Don't pass nsRefPtr&& to functions that want raw pointers. r=froydnj
--HG--
extra : rebase_source : d25c43a593a72615259e39ae053376f261aa55ad
2015-08-13 15:22:48 +03: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
Jonathan Kew
fad47169f8 Bug 1184473 - Bypass the word cache for graphite fonts that include space contextuals. r=jdaggett 2015-08-03 09:04:59 +01:00
Simon Montagu
04f33e7cf4 Bug 1183209 patch 3: update generated data files to Unicode 8, and adapt internal XIDMOD types to the new types in Unicode's xidmodifications.txt, r=jfkthame 2015-07-15 05:55: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
Eric Rahm
75c4bebb79 Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj
This is straightforward mapping of PR_LOG levels to their LogLevel
counterparts:
  PR_LOG_ERROR   -> LogLevel::Error
  PR_LOG_WARNING -> LogLevel::Warning
  PR_LOG_WARN    -> LogLevel::Warning
  PR_LOG_INFO    -> LogLevel::Info
  PR_LOG_DEBUG   -> LogLevel::Debug
  PR_LOG_NOTICE  -> LogLevel::Debug
  PR_LOG_VERBOSE -> LogLevel::Verbose

Instances of PRLogModuleLevel were mapped to a fully qualified
mozilla::LogLevel, instances of PR_LOG levels in #defines were mapped to a
fully qualified mozilla::LogLevel::* level, and all other instances were
mapped to us a shorter format of LogLevel::*.

Bustage for usage of the non-fully qualified LogLevel were fixed by adding
|using mozilla::LogLevel;| where appropriate.
2015-06-03 15:25:57 -07:00