Commit graph

17 commits

Author SHA1 Message Date
Ting-Yu Lin
384e9e119b Bug 1291110 Part 4 - Use line BSize to query available space when updating nsLineLayout. r=dbaron
In nsBlockFrame::PlaceLine(), we query the float available space by
using the line's BSize(), which may cause the line to reflow again due
to available space shrunk.

The first issue lies in the second reflow. That is, we do not leverage
the line's BSize() computed in the first reflow to query the float
available space when updating the inline reflow engine in
BlockReflowInput::AddFloat(). So some tall inline elements could still
overlap the floats as in the first reflow.

To solve this, we cache current line's BSize so that it could be
used to update the inline reflow engine when redo the line.

Another issue is in nsBlockFrame::PlaceLine(). When determined whether
the available space is shrunk, we use the float manager's state *before*
placing the line. So if current line has floats, they're not considered.

To solve this, we use the current set of floats to get the float available
space for comparison, and leave the original aFloatAvailableSpace to provide
the information when redoing the line.

MozReview-Commit-ID: GqqNlphgxYS

--HG--
extra : rebase_source : e2c64ab1ac363c7a08e532dc043bee69d6455049
2016-08-22 19:42:37 +08:00
Ting-Yu Lin
bb1491fb5a Bug 1291110 Part 1 - Fix log and comment related to float. r=dbaron
MozReview-Commit-ID: ICUflMUOsD2

--HG--
extra : rebase_source : ccba872d056edcfb07095f3f2995492324394ab0
2016-08-22 19:41:53 +08:00
Jeremy Chen
aee90be343 Bug 1286468 followup - Fix naming issues.
MozReview-Commit-ID: C2PDA4R5k5F
2016-10-24 15:01:25 +08:00
Jeremy Chen
349eabf2f7 Bug 1286468 - Rename line related functions in nsBlockFrame. r=TYLin
1. Rename these functions to agree with Mozilla coding style.
2. Use singular naming instead of plural naming since each of these functions
returns an iterator pointing to a singular line.
3. Rename line() and rline() to BeginLineFrom() and RBeginLineFrom(), which
shall improve the readability.

MozReview-Commit-ID: txZjVnv9Yb

--HG--
extra : rebase_source : b4dae99ab7bf751bd9974616f8f8e6dfe6248fc2
2016-10-22 19:41:05 +08:00
Ting-Yu Lin
b66ea190f5 Bug 1302758 Part 2 - Replace NOISY_FLOATMANAGER with nsBlockFrame::gNoisyFloatManager. r=dholbert
To see the flag in action, export GECKO_BLOCK_DEBUG_FLAGS="float-manager" and
open a page containing float elements. For example:

$ GECKO_BLOCK_DEBUG_FLAGS="float-manager" ./mach run layout/reftests/floats/orthogonal-floats-1a.html

MozReview-Commit-ID: 7Rb45ophewf

--HG--
extra : rebase_source : f40703a2ec448bf39a4a49e98fcd50f5550bbdd3
2016-09-15 14:32:12 +08:00
Manish Goregaokar
aad318e17a Bug 1300337 - Replace None_ variants from nsStyleConsts.h with None; r=heycam,TYLin
MozReview-Commit-ID: CxHzbEzjLxT

--HG--
extra : rebase_source : 232f90b8b107f7fb49f47a29a4e493660b8a7d87
2016-09-04 00:16:58 +05:30
Jeremy Chen
c6d0429830 Bug 1297306 - part6:replace NS_STYLE_CLEAR_* with StyleClear enum class. r=xidorn
After using enum class, a switch-case warning in CombineBreakType is caught.
This is one of such kind safty checks that we would like to gain.
Fix it by adding default case for switch-case in CombineBreakType.

MozReview-Commit-ID: BdS3LPN6qzX

--HG--
extra : rebase_source : 17f24a0d482ed6eb51b23e6942d0ac1c87375e0b
2016-09-07 10:20:17 +08:00
Xidorn Quan
57e31c7faa Bug 1260031 followup - Remove unused parameter of BlockReflowInput::ComputeBlockAvailSpace. r=dbaron
MozReview-Commit-ID: 7ZZ0xw9l4YZ

--HG--
extra : rebase_source : 7b0c0138cf1af76608db4fb997c313a590ef054e
2016-08-22 21:39:54 +10:00
Emilio Cobos Álvarez
619cb14d87 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
Ravi Shankar
149cb6c819 Bug 1297982 - Replace NS_STYLE_BOX_DECORATION_BREAK_* with enum class; r=xidorn
MozReview-Commit-ID: 9Cli68UpKdz

--HG--
extra : rebase_source : aa43e54c5e5501cbfee29437c5fcfc0216823bd8
2016-08-26 12:44:32 +05:30
Ting-Yu Lin
151d2fc6c8 Bug 1294628 - Replace block reflow input flags with a bit fields struct. r=dholbert
MozReview-Commit-ID: 2ZSm9hTrsuh

--HG--
extra : rebase_source : 2d44e6c8e1856274d466ed1c523ff6cbf793b4e7
2016-08-12 15:28:45 +08:00
Ting-Yu Lin
b8899e7e16 Bug 1293604 - Replace NS_STYLE_FLOAT_* with StyleFloat enum class. r=dbaron
MozReview-Commit-ID: 4K6TyIm6cs3

--HG--
extra : rebase_source : b6210815b7c03d5634fdddf8080a3da4e090d194
2016-08-09 17:32:54 +08:00
Manish Goregaokar
d78a51cbcc Bug 1288383 - Replace NS_STYLE_FLOAT_EDGE_* with an enum class; r=heycam
MozReview-Commit-ID: FrH5kGWeXkL

--HG--
extra : rebase_source : 73c3446ba07f31f3fbfb6eca304ebe88cccf359a
2016-07-25 11:56:05 +05:30
Ting-Yu Lin
40fcd21b9a 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

--HG--
extra : rebase_source : c91a2e174a0baec60c1b0111ac7636295004ab35
2016-07-21 18:36:39 +08:00
Ting-Yu Lin
55cde36029 Bug 1277129 Part 6b - Rename rendContext to mRenderingContext in SizeComputationInput. r=dbaron
MozReview-Commit-ID: LczLJDtDncy

--HG--
extra : rebase_source : c32e928ae25f94305fb907db89278dce7304a903
2016-07-21 18:36:38 +08:00
Ting-Yu Lin
6111a2de40 Bug 1277129 Part 2c - Rename nsBlockReflowState to BlockReflowInput. 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 "nsBlockReflowState" "BlockReflowInput"

MozReview-Commit-ID: FtjqkQpGfcI

--HG--
extra : rebase_source : c8f678bc47217b778df7f91f0f6cce6c44b04d90
2016-07-21 18:36:36 +08:00
Ting-Yu Lin
371989a096 Bug 1277129 Part 2b - Rename nsBlockReflowState.h/cpp to BlockReflowInput.h/cpp and fix #includes. r=dbaron
The #includes are fixed 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 "nsBlockReflowState\.h" "BlockReflowInput\.h"

MozReview-Commit-ID: 6QMqko1XOsT

--HG--
rename : layout/generic/nsBlockReflowState.cpp => layout/generic/BlockReflowInput.cpp
rename : layout/generic/nsBlockReflowState.h => layout/generic/BlockReflowInput.h
extra : rebase_source : 8911b9bbe68ceca82c77b7e120d87bfa71b7211c
2016-07-21 18:36:36 +08:00
Renamed from layout/generic/nsBlockReflowState.cpp (Browse further)