Commit Graph

103 Commits

Author SHA1 Message Date
Alexis Beingessner
3117218f13 Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-13 11:00:10 -04:00
Sebastian Hengst
1b1d14e565 Backed out changeset 3d1ce85e6348 (bug 1088760) for bustage, at least on Android at layout/generic/nsPluginFrame.cpp:1612. r=backout 2017-06-13 00:30:03 +02:00
Alexis Beingessner
c6fbc5e17e Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-12 17:32:48 -04:00
Emilio Cobos Álvarez
af19fcf653 Bug 1361749: Initialize all the fields in nsFrameContinuationState. r=mats
Not all of them are initialized/used in all the paths, but worth doing it just
for sanity.

MozReview-Commit-ID: 2EsHQCc0U8P
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-05-03 22:05:41 +02:00
Jonathan Kew
dec49fa0a3 Bug 1358275 - Skip the main body of bidi-resolution for blocks that can be determined to be purely LTR content without directional overrides/embeddings. r=dholbert 2017-04-26 23:25:48 +01:00
Mats Palmgren
e22287d56b Bug 410857 part 4 - Stop passing around aBlockFrame just for DEBUG purposes. Introduce BidiParagraphData::mCurrentBlock for that purpose and set it to the right block continuation this time. r=jfkthame 2017-02-20 17:43:08 +01:00
Xidorn Quan
c92dbece89 Bug 1160847 part 4 - Remove useless lineOffset variable in nsBidiPresUtils::ResolveParagraph. r=jfkthame
MozReview-Commit-ID: 7YRIg9TmExp
2016-06-29 17:48:00 +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
Nicholas Nethercote
4fab88afad Bug 1232852 (part 3) - Remove unused parameters from some accessibility code. r=tbsaunde. 2015-12-15 21:24:06 -08:00
Nicholas Nethercote
7fabd8754f 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().
2015-12-15 13:56:41 -08:00
Birunthan Mohanathas
a29151dc87 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
Xidorn Quan
d2e4a6f285 Bug 1181890 - Center children of ruby content frame if necessary after the bidi reposition. r=jfkthame 2015-07-13 09:32:15 +10:00
Matt Brubeck
370f31cc60 Bug 1169088 - Remove unused nsBidiPresUtils methods. r=dbaron
These were used only in nsSVGGlyphFrame which was removed in bug 889736.
2015-05-27 19:06:33 -07:00
Xidorn Quan
c2d16e1a52 Bug 1141931 patch 10 - Revert to pass container size instead of only isize for bidi reordering. r=smontagu 2015-04-08 11:22:34 +12:00
Xidorn Quan
b5ccb2a507 Bug 1141931 part 8 - Reorder ruby frames regarding their direction. r=jfkthame 2015-04-08 11:22:34 +12:00
Xidorn Quan
bffd67ffc1 Bug 1141931 part 4 - Make bidi reordering always in frame order. r=jfkthame,smontagu 2015-04-08 11:22:34 +12:00
Xidorn Quan
2f95496ebf Bug 1141931 part 3 - Adjust some parameters of functions in nsBidiPresUtils. r=jfkthame
Includes two changes:
* aContainerSize of ReorderFrames, RepositionInlineFrames, RepositionFrame are changed to aContainerISize;
* the type of aContainuationStates in the functions above is changed to const pointer.
2015-04-08 11:22:34 +12:00
Wes Kocher
95d8beba17 Backed out 10 changesets (bug 1141931) for mochitest-5 failures CLOSED TREE
Backed out changeset c90940067de6 (bug 1141931)
Backed out changeset 96b48288abab (bug 1141931)
Backed out changeset 87281c7ded34 (bug 1141931)
Backed out changeset 6a914ba0b8ec (bug 1141931)
Backed out changeset 9cfea55b5e95 (bug 1141931)
Backed out changeset f432612b6475 (bug 1141931)
Backed out changeset 48cf9568a4b1 (bug 1141931)
Backed out changeset f1ab848b3fa6 (bug 1141931)
Backed out changeset 8a3c71a3b525 (bug 1141931)
Backed out changeset 119d3c0fd0f6 (bug 1141931)
2015-04-07 14:23:57 -07:00
Xidorn Quan
d01e57805b Bug 1141931 patch 10 - Revert to pass container size instead of only isize for bidi reordering. r=smontagu 2015-04-08 08:40:31 +12:00
Xidorn Quan
37b4cb3c6f Bug 1141931 part 8 - Reorder ruby frames regarding their direction. r=jfkthame 2015-04-08 08:40:31 +12:00
Xidorn Quan
27f69dab91 Bug 1141931 part 4 - Make bidi reordering always in frame order. r=jfkthame,smontagu 2015-04-08 08:40:31 +12:00
Xidorn Quan
c0df2fa76a Bug 1141931 part 3 - Adjust some parameters of functions in nsBidiPresUtils. r=jfkthame
Includes two changes:
* aContainerSize of ReorderFrames, RepositionInlineFrames, RepositionFrame are changed to aContainerISize;
* the type of aContainuationStates in the functions above is changed to const pointer.
2015-04-08 08:40:31 +12:00
Simon Montagu
f9ca39cffa Bug 1131013: when setting the position of inline frames in vertical writing modes with right-to-left direction, subtract the inline start from the container height to get the correct vertical position. r=jfkthame 2015-02-11 01:43:03 -08:00
Simon Montagu
3c04c06924 Bug 1100071 patch 3: don't pass around bidi levels when we only need the direction, r=dholbert 2014-11-20 12:45:23 +02:00
Simon Montagu
4c365d8f67 Bug 1100071 patch 2: add macros for common tests whether bidi level is odd and whether two bidi levels have the same parity, r=dholbert 2014-11-20 12:45:22 +02:00
Jonathan Watt
3c69ad6faa Bug 1088625, part 2 - Pass nsFontMetrics objects through to code that needs it instead of storing it on the nsRenderingContext. r=mstange 2014-10-24 16:28:14 +01:00
Jonathan Kew
fd5780312c Bug 1080621 - Don't pass nscoord in-params by reference in nsBidiPresUtils methods. r=smontagu 2014-10-16 09:40:20 +01:00
Simon Montagu
fba753fd13 Bug 1069941 patch 3: Pass the frame physical width, not inline size, to the inner loop of RepositionFrame, plus cosmetic fixes, r=jfkthame 2014-09-30 10:59:14 -07:00
Simon Montagu
26d6d0b4d3 Bug 1069941 patch 2: reset the start coordinate of the inline frames before ReorderFrames so that the margin doesn't get added twice, r=jfkthame 2014-09-30 10:59:13 -07:00
Simon Montagu
1fd69df1d1 Bug 1069941 patch 1: be more accurate when identifying the first and last frames on the line and applying margin/border/padding, r=jfkthame 2014-09-30 10:59:13 -07:00
Ehsan Akhgari
8bb87f8a27 Bug 1060985 - Fix more bad implicit constructors in layout; r=roc 2014-08-31 23:36:37 -04:00
Ehsan Akhgari
c01e9369ee Bug 491863 - Remove IBMBIDI; r=roc 2014-04-23 21:15:29 -04:00
Simon Montagu
89f7fee0ce Use logical text layout API in nsLineLayout. Bug 789096, r=jfkthame 2014-03-11 13:23:50 -07:00
Carsten "Tomcat" Book
db3b507cf9 Backed out changeset aeff4052ef00 (bug 789096) 2014-03-11 09:22:52 +01:00
Simon Montagu
c3baf9cc3b Use logical text layout API in nsLineLayout. Bug 789096, r=jfkthame 2014-03-10 22:19:03 -07:00
Ehsan Akhgari
68bfe70f09 Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc
This patch was automatically generated by the following script:

#!/bin/bash
# Command to convert PRUnichar to char16_t

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*modules/libmar*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name prtypes.h \
       ! -name Char16.h \
         -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 PRUnichar char16_t
2014-01-04 10:02:17 -05:00
Simon Montagu
7abe75f7c0 Add support for unicode-bidi: -moz-plaintext in XUL. Bug 869833, r=roc 2013-11-18 17:24:16 +02:00
Ehsan Akhgari
45b9b9b617 Bug 906790 - Minimize layout/base #includes; r=roc 2013-08-19 18:55:18 -04:00
Ehsan Akhgari
243c878d26 Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
This patch was generated by a script.  Here's the source of the script for
future reference:

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -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 PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t

convert PRIntn int
convert PRUintn unsigned

convert PRSize size_t

convert PROffset32 int32_t
convert PROffset64 int64_t

convert PRPtrdiff ptrdiff_t

convert PRFloat64 double
2012-08-22 11:56:38 -04:00
David Zbarsky
191398e14e [Bug 780428] Don't include nsIFrame.h in places where it's not necessary r=roc 2012-08-05 23:00:56 -04:00
Aryeh Gregor
8b4a23fc4c Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
Gervase Markham
cb6a072c2a Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Simon Montagu
3190b675d1 Add a mParagraphDepth member to BidiParagraphData and cache it on frames to track nested bidi-isolated paragraphs. Use mParagraphDepth (* 2 + isRTL in order to keep LTR even and RTL odd) as the initial paragraph embedding level instead of pushing a stack of embedding codes. Pass the <bdi> frame instead of its first-child to BidiParagraphData::Reset and save a call to GetParent(). Split inline ancestors before and after bidi-isolated paragraphs, in the same way that we currently do between runs in different directions. This required also adding code to SplitInlineAncestors to handle situations where the parent frame is being split before its first child or after its last child. In JoinInlineAncestors, prevent frames that belong to paragraphs isolated from one another from being rejoined. Bug 712600, r=ehsan, roc 2012-01-11 21:26:02 +02:00
Simon Montagu
584c63c6b8 Test the containing frame for continuations, not the child. Bug 698706, r=roc 2011-11-07 16:26:50 +02:00
Simon Montagu
356d72cd24 Implement unicode-bidi: -moz-isolate in layout. Bug 613149, r=roc 2011-10-18 14:51:57 +02:00
Michael Wu
0fe7772ece Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones 2011-09-28 23:19:26 -07:00
Simon Montagu
1f18554f1f Make all nsBidiPresUtils methods static. Bug 624798, r=roc 2011-04-13 12:23:49 +03:00
Simon Montagu
7ad7f56db8 Include continuations of frames with no newline. Bug 582181, r=roc 2011-06-15 10:45:57 +03:00
Simon Montagu
1336f90c90 Bug 263359/Bug 229367: resolve paragraph on encountering <br> or embedded block elements. r=roc 2011-04-11 10:59:30 +03:00