Commit Graph

251 Commits

Author SHA1 Message Date
Jeremy Chen
c6b8cd2878 Bug 1343516 - clean up the mess of PropertyProvider and its implementations. r=jfkthame
The cleanup work includes:

part 1: make all methods 'const' for the abstract class of PropertyProvider.

part 2: make nsFontMetrics's StubPropertyProvider final.

part 3: make nsTextFrame's PropertyProvider final.

  Make some methods 'const' and some variables 'mutable', so we could let all the
  overridden methods stay const.

  We also need to make the pass-in parameter of gfxFontGroup's GetHyphenWidth const.
  Note that the comment of GetHyphenWidth seem outdated, so I fixed it as well.

part 4: make the member variables in nsTextFrame's PropertyProvider to be 'const'.

  Make all the member variables 'const' except mStart, mLength,
  mJustificationArrayStart, and mJustificationSpacings.

  The static function AdvanceToNextTab is fixed since we only use 2 of the 4 parameters.

part 5: coding style fix for nsTextFrame's PropertyProvider.

MozReview-Commit-ID: 1kbWPwx27aQ
2017-03-17 18:53:15 +08:00
Mats Palmgren
c13eda9c07 Bug 1343552 part 1 - Invalidate the cached flow length when the next-in-flow/continuation changes. r=jfkthame
MozReview-Commit-ID: Bz5YA60NY8I
2017-03-09 13:18:26 +01:00
Emilio Cobos Álvarez
40969de9f5 Bug 1334075: Part 2, mark some methods in nsTextFrame as final to avoid virtual calls. r=xidorn
MozReview-Commit-ID: FBhjFSNviBL
2017-01-26 15:43:12 +01:00
Emilio Cobos Álvarez
0066585ada Bug 1334075: Part 1, Reformat nsTextFrame.h to match coding style. r=xidorn
MozReview-Commit-ID: FLgExDFFPXW
2017-01-26 15:43:06 +01:00
Ting-Yu Lin
19193f8928 Bug 1332105 Part 1 - Convert SelectionDetails and related functions to use UniquePtr. r=dholbert
For the non-owning pointer usage like iterating SelectionDetails's linked
list, it's sufficient to use SelectionDetails*.

MozReview-Commit-ID: 7PCFhD6Iz8j
2017-01-20 17:39:57 +08:00
Julian Seward
acfd8c9284 Bug 1316556 - Remove zeroing allocation in class nsIPresShell. r=dbaron. 2016-12-01 09:06:50 +01:00
Jeremy Chen
89bb1c2964 Bug 1307402 - use a more precise bounding box for initial letter texts. r=jfkthame
MozReview-Commit-ID: 5OIXp0uQisn
2016-10-04 22:22:52 +08:00
Jonathan Kew
d7e485fc9c Bug 1280887 - patch 2 - Make gfxTextRun refcounted, replace usage of UniquePtr<> with RefPtr<> for textruns, and make nsTextFrame hold a strong reference to its run(s). r=mats 2016-08-19 13:14:22 +01:00
Jonathan Watt
751215faad Bug 1058040, part 2 - Rename gfxTextContextPaint to SVGContextPaint and add some code comments. r=dholbert 2016-07-22 14:56:09 +01:00
Ting-Yu Lin
d3e8cf1818 Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron
This patch is generated by the following script:

function rename() {
find .\
     -type f\
     ! -path "./obj*"\
     ! -path "./.git"\
     ! -path "./.hg"\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -r "s/$1/$2/g" "{}" \;
}

rename "([[:alpha:]]*)([rR])eflowState(s?)" "\1\2eflowInput\3"

MozReview-Commit-ID: ITFO7uMTkSb
2016-07-21 18:36:39 +08:00
Ting-Yu Lin
bb0825b5c7 Bug 1277129 Part 5c - Rename nsHTMLReflowMetrics to ReflowOutput. r=dbaron
This patch is generated by the following script:

function rename() {
find .\
     -type f\
     ! -path "./obj*"\
     ! -path "./.git"\
     ! -path "./.hg"\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -e "s/$1/$2/g" "{}" \;
}

rename "nsHTMLReflowMetrics" "ReflowOutput"

MozReview-Commit-ID: 2HBb7DkooH5
2016-07-21 18:36:38 +08:00
Ting-Yu Lin
10912a51e3 Bug 1277129 Part 1c - Rename nsHTMLReflowState to ReflowInput. r=dbaron
This patch is generated by the following script:

function rename() {
find .\
     -type f\
     ! -path "./obj*"\
     ! -path "./.git"\
     ! -path "./.hg"\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -e "s/$1/$2/g" "{}" \;
}

rename nsHTMLReflowState ReflowInput

MozReview-Commit-ID: 9r9vdVv1pXc
2016-07-21 18:36:35 +08:00
cku
308acc4628 Bug 1287705 - Part 2. Add more comments and construct PaintState in PaintTextParams. r=jfkthame
MozReview-Commit-ID: EzfOzRUU6PQ
2016-07-19 20:48:19 +08:00
Makoto Kato
82adc21cb9 Bug 1203871 - Part 1. Add nsIFrame::GetCharacterRectsInRange. r=jfkthame
Masayuki suggests GetCharcterRectsInRange instead of first idea's API by part 2 implementation.

IME wants to need the width per character.  Now nsTextFrame/nsIFrmae has only API to get point of string.  So I want to add this method to calculate simply by comment #3.

If no text frame,  I would like to return error due to no character.  (Caller shouldn't call this API on non-text frame.)

MozReview-Commit-ID: LQHUTzhnGn
2016-06-23 12:02:14 +01:00
Masayuki Nakano
4b3d1e8406 Bug 1278014 part.2 Define mozilla::SelectionType as an enum class and use it instead of RawSelectionType as far as possible r=smaug
This patch defines mozilla::SelectionType as an enum class.  This is safer than nsISelectionController::SELECTION_* since setting illegal value to its variable is checked at build time.  So, as far as possible, this should be used everywhere (but of course, this isn't available in scriptable interfaces).

And also this implements some useful methods for managing SelectionType and RawSelectionType which are implemented in layout/nsSelection.cpp because nsISelectionController is implemented by both PresShell and nsTextEditorState.  Therefore, implementing one of them may make hard to find them.  On the other hand, nsSelection.cpp is a better file name to look for them.

Note that this patch creates mozilla::Selection::RawType() for binding.  Native code should keep using Selection::Type() but the binding code needs to use RawType() due to impossible to convert from SelectionType to RawSelectionType without explicit cast.

MozReview-Commit-ID: 81vX7A0hHQN
2016-06-11 11:06:37 +09:00
Masayuki Nakano
71befe7dcf Bug 1278014 part.1 Rename SelectionType in nsISelectionController.idl to mozilla::RawSelectionType r=smaug
mozilla::SelectionType will be an enum class. Therefore, we need to rename SelectionType with a word "raw" since it's a type for raw nsISelectionController::SELECTION_*.

MozReview-Commit-ID: K8SO0bbpv0Y
2016-06-07 22:42:06 +09:00
CJKu
a1dab046b9 Bug 1269971 - Part 7. Clean out unused things created in bug 759568; r=jfkthame
MozReview-Commit-ID: 4spLj1fgthI
2016-05-13 00:09:39 +08:00
CJKu
2ca6611b52 Bug 1269971 - Part 3. Handle selection text color and selection backgrond painting; r=jfkthame
MozReview-Commit-ID: CQmqiCmvygr
2016-05-13 00:08:53 +08:00
CJKu
b5b879d00c Bug 1269971 - Part 2. From ClipBackgroundByText to GenerateAndPushTextMask; r=jfkthame,mtseng
MozReview-Commit-ID: 1PK2Huytq3i
2016-05-13 00:08:41 +08:00
Matt Woodrow
61200a9c5c Bug 1243610 - Refactor UpdateOverflow to separate out local overflow from that contributed by descendants. r=dbaron 2016-05-04 12:27:43 +12:00
Jeremy Chen
57063f1344 Bug 1248708 - Part2.2: render -webkit-text-stroke property. r=jfkthame 2016-04-23 01:40:39 +08:00
Xidorn Quan
e3a772c73a Bug 1097499 part 14 - Draw emphasis marks properly for text-combine-upright. r=jfkthame
MozReview-Commit-ID: 2bHWXxZDVGk
2016-04-22 09:18:41 +10:00
Xidorn Quan
0c1ee61704 Bug 1097499 part 13 - Draw decoration line properly for text-combine-upright. r=jfkthame
MozReview-Commit-ID: AymG09nvxh1
2016-04-22 09:18:41 +10:00
Xidorn Quan
8f0254cf82 Bug 1097499 part 9 - Transform full-width characters to non-full-width correspondents for combined text. r=jfkthame
MozReview-Commit-ID: CXntBz9HPJu
2016-04-22 09:18:41 +10:00
Jonathan Kew
453ebfaa9e Bug 1265648 - Remove the global nsTextFrameTextRunCache, as it no longer serves any useful purpose. r=mats 2016-04-20 10:54:43 +01:00
CJKu
0c1b7efb87 Bug 759568 - Part 3. Render text-selection beneath background image; r=jfkthame
MozReview-Commit-ID: 3VUGqyJOX8Q
2016-04-14 16:28:07 +08:00
CJKu
8eacf30983 Bug 759568 - Part 2. Render background-clip:text; r=jfkthame
MozReview-Commit-ID: HQHBe7OioWs
2016-04-14 16:28:07 +08:00
Carsten "Tomcat" Book
3b36687a1f Backed out changeset 6a2e62e8c861 (bug 759568) 2016-04-14 08:57:41 +02:00
Carsten "Tomcat" Book
5efc53ba0f Backed out changeset e9fc67d8b0fa (bug 759568) 2016-04-14 08:57:39 +02:00
CJKu
1583a9e5b9 Bug 759568 - Part 3. Render text-selection beneath background image; r=jfkthame
MozReview-Commit-ID: 3VUGqyJOX8Q
2016-04-14 12:45:38 +08:00
CJKu
f51f239496 Bug 759568 - Part 2. Render background-clip:text; r=jfkthame
MozReview-Commit-ID: HQHBe7OioWs
2016-04-14 12:45:38 +08:00
Sebastian Hengst
e99225a2fb Backed out changeset e64951d74d2a (bug 759568) 2016-04-12 17:55:44 +02:00
Sebastian Hengst
d5954388c7 Backed out changeset 21551ed8f1e1 (bug 759568) 2016-04-12 17:55:36 +02:00
CJKu
91f5f7c0ea Bug 759568 - Part 3. Render text-selection beneath background image; r=jfkthame
MozReview-Commit-ID: 3VUGqyJOX8Q
2016-04-12 21:58:22 +08:00
CJKu
110d895ffb Bug 759568 - Part 2. Render background-clip:text; r=jfkthame
MozReview-Commit-ID: HQHBe7OioWs
2016-04-12 21:58:22 +08:00
Xidorn Quan
3f99895d64 Bug 1258636 part 2 - Use struct to pass params for nsTextFrame::PaintDecorationLine. r=jfkthame
MozReview-Commit-ID: CICgNSPRrLM
2016-03-22 17:42:18 +08:00
Ting-Yu Lin
2b5db8a11e Bug 1251519 Part 1 - Remove nsTextFrameBase as an nsFrame alias. r=mats
Bug 655877 Part 20 made this deliberately to let nsTextFrame
QueryFrame-able. https://hg.mozilla.org/mozilla-central/rev/d8c6025c0881

But other types like nsPlaceholderFrame or nsBulletFrame are also
implemented QureyFrame, which do not have this inheritance indirection.
I guess it was for historical reason, and can be removed safely.

MozReview-Commit-ID: CPeQvpKzEKh
2016-03-10 17:38:31 +08:00
Xidorn Quan
c51b6be554 Bug 1251995 part 7 - Use struct to pass params for nsTextFrame::Paint*Shadow functions. r=jfkthame
MozReview-Commit-ID: 5Wa9U0Ile4L
2016-03-08 15:56:18 +08:00
Xidorn Quan
9ab7e4d458 Bug 1251995 part 6 - Use struct to pass params for nsTextFrame::PaintText* functions. r=jfkthame
MozReview-Commit-ID: NTEUm8TY8N
2016-03-08 15:56:18 +08:00
Xidorn Quan
f72864bd15 Bug 1251995 part 5 - Unify units of dirty rect used for painting text frame. r=jfkthame
MozReview-Commit-ID: BK7j6y7lBV3
2016-03-08 15:56:18 +08:00
Xidorn Quan
94d079bb70 Bug 1251995 part 4 - Use struct to pass params for nsTextFrame::DrawText* functions. r=jfkthame
MozReview-Commit-ID: LYshkPDrqYl
2016-03-08 15:56:18 +08:00
Xidorn Quan
0547ab650a 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
2016-03-08 15:56:18 +08:00
Carsten "Tomcat" Book
1d112f4b74 Backed out changeset bf004c055beb (bug 1251995) 2016-03-07 12:18:19 +01:00
Carsten "Tomcat" Book
35c2f99d6a Backed out changeset 9b31d6fb1fcb (bug 1251995) 2016-03-07 12:18:16 +01:00
Carsten "Tomcat" Book
34a139b484 Backed out changeset ac1d42c669be (bug 1251995) 2016-03-07 12:18:14 +01:00
Carsten "Tomcat" Book
af2fd1e1ee Backed out changeset c36e12ded845 (bug 1251995) 2016-03-07 12:18:13 +01:00
Carsten "Tomcat" Book
8e9989e49a Backed out changeset 734559c25cb1 (bug 1251995) 2016-03-07 12:18:11 +01:00
Xidorn Quan
4a98d1fa4a Bug 1251995 part 7 - Use struct to pass params for nsTextFrame::Paint*Shadow functions. r=jfkthame
MozReview-Commit-ID: 5Wa9U0Ile4L
2016-03-02 09:41:43 +08:00
Xidorn Quan
046f53091c Bug 1251995 part 6 - Use struct to pass params for nsTextFrame::PaintText* functions. r=jfkthame
MozReview-Commit-ID: NTEUm8TY8N
2016-03-01 17:43:06 +08:00
Xidorn Quan
25d1c00994 Bug 1251995 part 5 - Unify units of dirty rect used for painting text frame. r=jfkthame
MozReview-Commit-ID: BK7j6y7lBV3
2016-03-01 16:28:27 +08:00