Commit Graph

1119 Commits

Author SHA1 Message Date
Kan-Ru Chen
a9b19d0584 Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj
The patch is generated from following command:

  rgrep -l unused.h|xargs sed -i -e s,mozilla/unused.h,mozilla/Unused.h,

MozReview-Commit-ID: AtLcWApZfES
2016-08-24 14:47:04 +08:00
Jonathan Kew
1df1a4823f Bug 1288975 - Make innerText use nsCaseTransformTextRunFactory::TransformString to implement text-transform, so that it benefits from language-specific behaviors. r=mats 2016-08-20 00:08:24 +01:00
Jonathan Kew
b1c0870c11 Bug 1280887 - patch 3 - Get rid of the mTextRunsToDelete array now that the frame's textruns are refcounted and will know when to die by themselves. r=mats 2016-08-19 13:14:37 +01: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 Kew
d1b0cfa154 Bug 1280887 - patch 1 - Declare a bunch of gfxTextRun* variables as const pointers, for clarity. r=mats 2016-07-07 13:51:24 +01:00
Jonathan Chan
23ccd0531f Bug 1293739 - Part 1: Rename nsCSSProperty to nsCSSPropertyID. r=dholbert
This patch is generated by the following commands (note: if you're running
using OS X's sed, which accepts slightly different flags, you'll have to
specify an actual backup suffix in -i, or use gsed from Homebrew):

  hg stat -c \
  | cut -c 3-  \
  | tr '\n' '\0' \
  | xargs -0 -P 8 gsed --follow-symlinks 's/\bnsCSSProperty\b/nsCSSPropertyID/g' -i''

Then:

  hg mv layout/style/nsCSSProperty.h layout/style/nsCSSPropertyID.h

... and finally, manually renaming nsCSSProperty in the include guard in
nsCSSProperty.h.

MozReview-Commit-ID: ZV6jyvmLfA
2016-08-09 16:28:19 -07:00
Masayuki Nakano
bceffa7614 Bug 1286464 part.11 nsTextFrame::GetCharacterRectsInRange() shouldn't compute character rect at the first character in next nsTextFrame r=jfkthame
nsTextFrame::GetCharacterRectsInRange() handles a character at the end offset of its content as in it. However, it causes odd result when the caller wants first text rect in the next nsTextFrame. E.g., if end of query range is at the next nsTextFrame's first character, currently, it returns the last character as in same line.

So, it should stop handling next frame's first character as in it.

MozReview-Commit-ID: 7WteerisrZp
2016-07-21 16:24:37 +09:00
Masayuki Nakano
c38ac17ed2 Bug 1257446 part.3 nsTextFrame::GetCharacterRectsInRange() shouldn't call gfxSkipCharsIterator::AdvanceOriginal() before checking if the current offset has already been reached to the end for avoiding assertions r=jfkthame
New eQueryTextRectArray causes a lot of assertions in various automated tests. The cause is that nsTextFrame::GetCharacterRectsInRange() calls gfxSkipCharsIterator::AdvanceOriginal(1) at the end of the |for| loop *without* checking if the iterator has already reached to the end.

MozReview-Commit-ID: 3KFxA11uOUc
2016-07-14 22:02:15 +09:00
Ravi Shankar
62a1eae26d Bug 1291667 - Change NS_STYLE_USER_SELECT_* constants to enum classes; r=heycam,manishearth
MozReview-Commit-ID: IcDt3XYvdlj
2016-08-10 21:42:21 +05:30
Emilio Cobos Álvarez
cbf40d9237 Bug 1288938: Allow passing different reasons to dirty a non display SVG text frame. r=heycam
Otherwise, when a glyph changes, we might end up doing too much work, destroying
the text-run and the observer that dirtied the frame, causing an assertion when
trying to delete it from the observer set.

MozReview-Commit-ID: LMQVr6pYFVM
2016-08-03 10:53:37 -07:00
Emilio Cobos Álvarez
06042d69fb 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
Ting-Yu Lin
7e5a56b15d Bug 1277129 Part 7c - Rename various RS variables to RI. r=dbaron
This patch is generated by the following script:

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

rename aChildRS aChildRI
rename aContainingBlockRS aContainingBlockRI
rename aFrameRS aFrameRI
rename aLastRS aLastRI
rename aOuterRS aOuterRI
rename aRS aRI
rename blockHtmlRS blockHtmlRI
rename captionRS captionRI
rename cellRS cellRI
rename childRS childRI
rename firstAncestorRS firstAncestorRI
rename flexContainerRS flexContainerRI
rename gridRS gridRI
rename innerRS innerRI
rename lastButOneRS lastButOneRI
rename LineContainerRS LineContainerRI
rename mBlockRS mBlockRI
rename parentRS parentRI
rename secondAncestorRS secondAncestorRI
rename lastRSSize lastRISize
rename lastRSPadding lastRIPadding

MozReview-Commit-ID: YEgZs3WMow
2016-07-21 18:36:39 +08: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
3b9a7090d9 Bug 1277129 Part 6b - Rename rendContext to mRenderingContext in SizeComputationInput. r=dbaron
MozReview-Commit-ID: LczLJDtDncy
2016-07-21 18:36:38 +08:00
Ting-Yu Lin
a16062e5d0 Bug 1277129 Part 6a - Rename frame to mFrame in SizeComputationInput. r=dbaron
MozReview-Commit-ID: 3SXZ4qEZJc
2016-07-21 18:36:38 +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
Chris Peterson
6c0f810682 Bug 1277106 - Part 2: Expand MOZ_UTF16() strings to u"" string literals. r=Waldo 2016-07-20 22:03:25 -07: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
cku
645cd3f1dd Bug 1287705 - Part 1. Do not paint text shadow while generating text mask. r=jfkthame
MozReview-Commit-ID: C3auIlugrFY
2016-07-19 20:41:18 +08:00
Kevin Chen
c1c1b5a407 Bug 1275693 - Refactor <canvas> strokeText drawing to re-use gfxTextRun::Draw. r=jfkthame 2016-07-14 02:00:00 +02:00
Daosheng Mu
cb92d62e43 Bug 1135329 - Reflow requests for nondisplay SVGTextFrame while its glyph is updated; r=heycam
MozReview-Commit-ID: 6QiRwx0FYKT
2016-06-24 16:02:44 +08:00
Michael Li
a5d5ed2560 Bug 1283273 - Change nsAutoPtr to UniquePtr in classes within layout/generic. r=dholbert 2016-07-08 08:08:00 +02:00
Xidorn Quan
aa54f7c700 Bug 1283106 - Put empty skip chars in gfxPlatform singleton rather than static local variable. r=jfkthame
MozReview-Commit-ID: 5SU6ewm5wbd
2016-07-05 11:02:24 +10:00
Xidorn Quan
ac4daefb98 Bug 1160847 part 3 - Restore virtual bidi control characters for reordering. r=jfkthame
This patch mainly consists of two parts, one for resolving and the other
for reordering.

In the resolving part, the added code stores the lowest embedding level
of all bidi formatting characters precede a frame to the bidi data of
that frame when necessary.

In the reordering part, virtual frame is restored from the information
stored above before asking the bidi engine to reorder frames

Collapsing a run of continuous virtual formatting characters into one
virtual character with the lowest embedding level among them should work
because a character with a higher embedding level than either of its
neighbors should not affect the reordering result of any other part of
the sequence. (No formal proof of this theorem, though)

MozReview-Commit-ID: LQjRu0mWsZP
2016-06-29 17:47:18 +10:00
Xidorn Quan
5c7f995803 Bug 1160847 part 2 - Add glue to nsBidiPresUtils to use support for bidi isolate in nsBidi. r=jfkthame
This patch is mainly based on smontagu's wip patch. Some non-trivial differences:

* BidiParagraphData.mIsolateCount and related code are not added in this patch.
  I investigated uses of this field in the wip patch, and it seems to me none of
  them makes sense:
  1. in the fast path of nsBidiPresUtils::ResolveParagraph, if there would be
     any isolate character in the surrounding text, there must exist more than
     one runs, which indicates the isolate count condition is redundant.
  2. in handle of br frame in nsBidiPresUtils::TraverseFrames, based on my
     understanding of "CSS Writing Modes Level 3" section "2.4.4. Paragraph
     Breaks Within Embeddings and Isolates", the resolving should happen
     unconditionally.

* {control,override}Char in nsBidiPresUtils::TraverseFrames are assigned
  unconditionally when in a bidi inline container, so that we can properly
  handle it when there are continuations. I suspect this was the reason of
  regressions in dynamic reftests from the wip patch mentioned in comment 1.

MozReview-Commit-ID: LUdBAapA48e
2016-06-29 17:47:00 +10:00
Brad Werth
69ccb7e3db Bug 1243559 - Removes static casts from calls to FrameProperties::Get, ::Set, and ::Remove, and forces callers to use the type associated with the property. r=dbaron 2016-06-21 13:17:11 -07: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
Xidorn Quan
597eddfb3f Bug 1281457 - Compute justification spacing eagerly in SetupJustificationSpacing. r=jfkthame
Before this change, SetupJustificationSpacing calls ComputeJustification
to compute how justification gaps are assigned to characters, and store
them in the PropertyProvider instance. When GetSpacing is called, those
information would be used to compute actual spacings from justification
before/after each character.

The bug is that, GetSpacing did not take gaps before the given range
into account when computing the spacing, which leads to unstable results
when range varies because of ignorance of accumulated error.

This patch changes it to eagerly computing the actual spacings inside
SetupJustificationSpacing, so that GetSpacing just queries the result
from mJustificationSpacings.

MozReview-Commit-ID: HoWqeOhD85w
2016-06-28 10:26:47 +10:00
Phil Ringnalda
ae1f6b874d Back out changeset 0bb00282a4c2 (bug 1243559) for widespread SVG assertion failures
CLOSED TREE
2016-06-22 18:45:08 -07:00
Brad Werth
665cd94da6 Bug 1243559 - Removes static casts from calls to FrameProperties::Get, ::Set, and ::Remove, and forces callers to use the type associated with the property. r=dbaron 2016-06-21 13:17:11 -07:00
Xidorn Quan
e58ba38557 Bug 1281099 part 2 - Merge three bidi frame properties into one. r=jfkthame
MozReview-Commit-ID: CEJhM3c21KO
2016-06-21 17:53:10 +10:00
Xidorn Quan
e4b1698b6a Bug 1281099 part 1 - Convert some macros to functions to help later change. r=jfkthame
MozReview-Commit-ID: 2OS5eIsNAYN
2016-06-21 17:21:09 +10:00
Xidorn Quan
99d0105305 Bug 1186892 - Handle url strikeout separately from IME selection types. r=jfkthame
MozReview-Commit-ID: CVwoKiMOHj9
2016-06-21 08:19:21 +10:00
Masayuki Nakano
35646e4494 Bug 1278014 part.14 Rename SelectionType::SELECTION_URLSTRIKEOUT to SelectionType::eURLStrikeout r=smaug
MozReview-Commit-ID: 7AqeDbHxGE2
2016-06-09 20:58:56 +09:00
Masayuki Nakano
fdeb61aef7 Bug 1278014 part.13 Rename SelectionType::SELECTION_URLSECONDARY to SelectionType::eURLSecondary r=smaug
MozReview-Commit-ID: C2IW7nqjEkD
2016-06-09 20:47:48 +09:00
Masayuki Nakano
322b23236c Bug 1278014 part.12 Rename SelectionType::SELECTION_FIND to SelectionType::eFind r=smaug
MozReview-Commit-ID: BZxBnCDBghi
2016-06-09 20:35:20 +09:00
Masayuki Nakano
22e3897811 Bug 1278014 part.10 Rename SelectionType::SELECTION_IME_SELECTEDCONVERTEDTEXT to SelectionType::eIMESelectedClause r=smaug
MozReview-Commit-ID: 8v3mqcYorOI
2016-06-09 19:29:29 +09:00
Masayuki Nakano
89a66c2729 Bug 1278014 part.9 Rename SelectionType::SELECTION_IME_CONVERTEDTEXT to SelectionType::eIMEConvertedClause r=smaug
MozReview-Commit-ID: 5UNqhB2ZEcZ
2016-06-09 19:14:17 +09:00
Masayuki Nakano
2bd1f0507f Bug 1278014 part.8 Rename SelectionType::SELECTION_IME_SELECTEDRAWTEXT to SelectionType::eIMESelectedRawClause r=smaug
MozReview-Commit-ID: DgprOxg87K6
2016-06-09 19:03:40 +09:00
Masayuki Nakano
52d14e77bb Bug 1278014 part.7 Rename SelectionType::SELECTION_IME_RAWINPUT to SelectionType::eIMERawClause r=smaug
MozReview-Commit-ID: BRe10Lyx5mt
2016-06-09 18:51:49 +09:00
Masayuki Nakano
400a8761f1 Bug 1278014 part.6 Rename SelectionType::SELECTION_SPELLCHECK to SelectionType::eSpellCheck r=smaug
MozReview-Commit-ID: 4n2jEVax37O
2016-06-09 18:37:36 +09:00
Masayuki Nakano
09b74b02de Bug 1278014 part.5 Rename SelectionType::SELECTION_NORMAL to SelectionType::eNormal r=smaug
MozReview-Commit-ID: AAdxTTKEvrk
2016-06-09 18:35:22 +09:00
Masayuki Nakano
ad13c60b69 Bug 1278014 part.4 Rename SelectionType::SELECTION_NONE to SelectionType::eNone r=smaug
MozReview-Commit-ID: BRfzs8sColP
2016-06-09 18:07:18 +09:00
Masayuki Nakano
4e5926428a Bug 1278014 part.3 Define 2 constants for number of SelectionType and number of SelectionType except "none" r=smaug
This patch defines two constants kSelectionTypeCount and kPresentSelectionTypeCount.  The former is same as nsISelectionController::NUM_SELECTIONTYPES.  The latter is kSelectionTypeCount - 1 for excluding SELECTION_NONE.  The latter is useful in some loops which handle all selection types except SELECTION_NONE.

Note that this patch fixes a bug of nsFrameSelection.  That doesn't treat SELECTION_NONE as a selection (see the definition of index), however, it defines redundant item and doesn't use it actually.  Additionally, it computes invalid selection type in each loop.  Therefore, without this patch, debug build hits MOZ_ASSERT() in ToSelectionType(RawSelectionType).

Note that these constants are defined as anonymous enum because we cannot define as const (or static) even with extern.  If we'd try to do it, it caused link error or not available in nsFrameSelection.cpp as constant value since they were not initialized if they were initialized in nsSelection.cpp.  Therefore, these constants are defined as enum items but using "k" prefix.

MozReview-Commit-ID: H6sH7NBEXlE
2016-06-11 11:12:26 +09: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
Carsten "Tomcat" Book
e9321e1391 merge mozilla-inbound to mozilla-central a=merge 2016-06-08 11:57:53 +02:00
Nicholas Nethercote
07e48a1ba0 Bug 1278452 - Remove an unnecessary null check in layout/generic/. r=heycam.
mLineContainer is dereferenced shortly before and after the check, so it's
obviously not useful.
2016-06-07 14:45:38 +10:00
Xidorn Quan
8b9905ef1a Bug 1277937 - Fix SELECTION_URLSTRIKEOUT. r=jfkthame
MozReview-Commit-ID: LumW94mTX4X
2016-06-07 16:12:15 -07:00