Commit Graph

1128 Commits

Author SHA1 Message Date
Jason Woofenden
908978aeb5 Bug 1008019 - Allow whitespace to "hang" at soft-wrap boundaries when white-space:pre-wrap is in effect. r=jfkthame 2016-03-20 17:54:00 -04:00
Xidorn Quan
1ada2b0d24 Bug 1260031 - Not force break before a block when calculating intrinsic width if the current line is empty and the block cannot intersect floats. r=dbaron
MozReview-Commit-ID: 9rNUDK5t5jg
2016-08-23 09:29:45 +10:00
Nicholas Nethercote
887efe04d5 Bug 1299727 - Rename NS_WARN_IF_FALSE as NS_WARNING_ASSERTION. r=erahm.
The new name makes the sense of the condition much clearer. E.g. compare:

  NS_WARN_IF_FALSE(!rv.Failed());

with:

  NS_WARNING_ASSERTION(!rv.Failed());

The new name also makes it clearer that it only has effect in debug builds,
because that's standard for assertions.
2016-09-01 15:01:16 +10:00
Emilio Cobos Álvarez
2efcfaad38 Bug 1299066: Make NS_STYLE_DISPLAY_* an enum class. Prefer indexing instead of linear search in the frame constructor r=heycam,bz
The main renaming was generated with the following python script:

```

import sys
import re

CAMEL_CASE_REGEX = re.compile(r"(^|_|-)([A-Z])([A-Z]+)")
DISPLAY_REGEX = re.compile(r"\bNS_STYLE_DISPLAY_([^M][A-Z_]+)\b")

def to_camel_case(ident):
  return re.sub(CAMEL_CASE_REGEX,
                lambda m: m.group(2) + m.group(3).lower(), ident)

def constant_to_enum(constant):
  return "StyleDisplay::" + to_camel_case(constant) + ("_" if constant == "NONE" else "")

def process_line(line):
  return re.sub(DISPLAY_REGEX,
                lambda m: constant_to_enum(m.group(1)), line)

lines = []
with open(sys.argv[1], "r") as f:
  for line in f:
    lines.append(process_line(line))

with open(sys.argv[1], "w") as f:
  for line in lines:
    f.write(line)
```

And the following shell commands:

```
find . -name '*.cpp' -exec python display.py {} \;
find . -name '*.h' -exec python display.py {} \;
```

MozReview-Commit-ID: 91xYCbLC2Vf
2016-09-01 20:41:17 -07:00
Sebastian Hengst
e81a3958f7 Backed out changeset 932c269da17b (bug 1008019) 2016-08-26 11:30:45 +02:00
Jason Woofenden
966ccaeb26 Bug 1008019 - Allow whitespace to "hang" at soft-wrap boundaries when white-space:pre-wrap is in effect. r=jfkthame 2016-03-20 17:54:00 -04:00
Jonathan Kew
ff0268019c Backed out changesets 4a7bb508cadf, e8917efd53e3, 2d87636d76b0 (bug 1008019) due to Android reftest orange. 2016-08-26 00:56:10 +01:00
Jason Woofenden
bef3b9fdf4 Bug 1008019 - Allow whitespace to "hang" at soft-wrap boundaries when white-space:pre-wrap is in effect. r=jfkthame 2016-03-20 17:54:00 -04:00
Jinank Jain
b875b54a4e Bug 712936 - Convert users of PR_STATIC_ASSERT to C++11 static_assert(). r=Ms2ger 2016-08-23 11:24:54 -04:00
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