Commit Graph

565 Commits

Author SHA1 Message Date
Cameron McCormack
c023cd4030 Bug 1353317 - stylo: For newly added content, note dirty descendants in the lazy frame construction case through the flattened tree parent. r=bholley
MozReview-Commit-ID: L6MhRK3zmSc
2017-04-04 18:28:05 +08:00
Cameron McCormack
7341326d0c Bug 1351535 - Part 7: Call StyleSubtreeForReconstruct when doing frame reconstruction. r=bholley
MozReview-Commit-ID: HxoGLPKJpnt
2017-04-04 19:36:09 +08:00
Cameron McCormack
21a32ad0d3 Bug 1351535 - Part 2: Explicitly indicate when a ContentRangeInserted call is for frame reconstruction. r=bholley
It wasn't clear to me whether the existing check for whether we are
under a restyle was sufficient to cover all cases of reconstructing
frames, so this patch makes it more explicit by passing that state
into ContentAppended and ContentRangeInserted.

MozReview-Commit-ID: HjlDCzJv97n
2017-04-04 19:17:35 +08:00
Cameron McCormack
6c077daa8b Bug 1349134 - stylo: Style newly appended children of an element with a binding through their flattened tree parents. r=bholley
MozReview-Commit-ID: 3fQouTm2bw4
2017-03-24 14:27:22 +08:00
Emilio Cobos Álvarez
c4199a94f8 Bug 1296516: Cleanup infallible or unchecked nsCSSFrameConstructor methods. r=heycam
MozReview-Commit-ID: IoMOQyAhadv
2017-03-20 22:28:16 +01:00
Boris Zbarsky
88f1ff35dd Bug 1345362 part 6. Make ::-moz-pagebreak a non-inheriting anon box. r=heycam
MozReview-Commit-ID: ClqKv8HOFj4
2017-03-08 23:50:59 -05:00
Boris Zbarsky
52f4dcb32a Bug 1343078 part 7. Make placeholders a non-inheriting anon box. r=dbaron
MozReview-Commit-ID: 3kQQroDRlr8
2017-03-08 00:18:40 -05:00
Emilio Cobos Álvarez
19669e3337 Bug 1329877: Optimize AncestorFilter usage in lazy frame construction. r=bz
MozReview-Commit-ID: ErzurfQldHf
2017-02-27 23:35:06 +01:00
cam@mcc.id.au
0115c32212 Bug 1331322 - Allow tagging of pseudo-implementing native anonymous content with the pseudo type at creation time, and eliminate explicit style contexts in nsIAnonymousContentCreator::ContentInfo. r=bholley
MozReview-Commit-ID: LO0t92orjWZ
2017-01-13 03:21:11 +00:00
Phil Ringnalda
a6b8226a11 Backed out 4 changesets (bug 1331322) for Android reftest failures in 1169331-1.html and forced-bg-color-outside-visible-region.html
Backed out changeset 96c6b5a11284 (bug 1331322)
Backed out changeset 15877d32de7d (bug 1331322)
Backed out changeset 841d608704d7 (bug 1331322)
Backed out changeset 02096c5eb029 (bug 1331322)
2017-02-15 21:24:00 -08:00
cam@mcc.id.au
c0b99199c1 Bug 1331322 - Allow tagging of pseudo-implementing native anonymous content with the pseudo type at creation time, and eliminate explicit style contexts in nsIAnonymousContentCreator::ContentInfo. r=bholley
MozReview-Commit-ID: LO0t92orjWZ
2017-01-13 03:21:11 +00:00
Cameron McCormack
87f3ad6dfb Bug 1297899 - Part 6: Move RestyleManagerHandle functionality into RestyleManager. r=bholley
MozReview-Commit-ID: 7lsti0bGzNr
2017-02-13 11:21:33 +08:00
Cameron McCormack
34c943ee6e Bug 1297899 - Part 3: Rename RestyleManager to GeckoRestyleManager and RestyleManagerBase to RestyleManager. r=bholley
MozReview-Commit-ID: fFTZKwmGJm
2017-02-13 11:21:32 +08:00
Cameron McCormack
3769d1a59e Bug 1297899 - Part 2: Rename RestyleManagerBase.{h,cpp} to RestyleManager.{h,cpp}. r=bholley
MozReview-Commit-ID: JVsfYommCoI
2017-02-13 11:21:31 +08:00
Cameron McCormack
334e0fe231 Bug 1334735 - Part 1: Move need style/flush flags from document to pres shell. r=bz
MozReview-Commit-ID: 2Amf9yGRiJA
2017-02-10 10:42:27 +08:00
Bobby Holley
c7555e68ae Bug 1334358 - Stop using CreateAnonymousFrames for scroll frame construction and remove the now-unused helper. r=bz 2017-01-27 16:13:35 -08:00
Timothy Nikkel
97b9636d25 Bug 1328202. Remove unused variable mGfxScrollFrame in nsCSSFrameConstructor. r=mats 2017-01-02 22:07:51 -06:00
Daniel Holbert
d530aa836e Bug 1269045 part 4: Drop now-obsolete parameter from anonymous flex/grid-item wrapping functions. r=mats
MozReview-Commit-ID: 5rGemcMMOhl
2016-10-31 08:58:18 -07:00
Ting-Yu Lin
5fb8c702af Bug 1309445 - Convert FrameConstructionItemList::mItems to use mozilla::LinkedList. r=dholbert
The major change to the Iterator is due to the fact that the end of a
LinkedList is represented by nullptr.

Also delete the type conversion functions which are no longer needed.

MozReview-Commit-ID: 2lYtFW9pSon
2016-10-18 15:50:27 +08:00
Mats Palmgren
06beda147b Bug 1308793 - Crash when setting display:[inline-]{flex,grid} or columnset properties on a SVG <text> element. r=tn 2016-10-09 22:34:07 -05:00
Ting-Yu Lin
cc5f5f88a0 Bug 1304441 Part 3 - Insert main summary's frame construction item at front of the list. r=bz
Change the logic that moves the main summary to the front from operating
on generated frames in DetailsFrame::SetInitialChildList() to operating
on frame construction item list in AddFrameConstructionItemsInternal()
so that it will be correct when cooperating with ::first-line.

The root cause of the bug reported is because when specifying
::first-line on details element, the first frame of summary element,
which is generated due to ib-split, will be wrapped in nsFirstLineFrame.
The original code fails to find the summary frame in the wrapper frame
and triggers assertion because of the second ib-split summary frame. To
fix that, we need to descend into the child list of wrapper frames when
checking the main summary.

Add original test case as a crashtest as well as reftests to clearly
reproduce the issue.

Note that in the reftest, the blue color in ::first-line is applied
incorrectly to the second line in the summary due to bug 520605.

MozReview-Commit-ID: Bv4Vcvxp6pY
2016-10-05 14:43:32 +08:00
Ting-Yu Lin
55e91b28f4 Bug 1299753 Part 3 - Reuse ConstructScrollableBlock to build scrollable DetailsFrame. r=bz
MozReview-Commit-ID: 1yAhuKqurHf
2016-09-08 15:38:06 +08:00
Ting-Yu Lin
b5787cd1d4 Bug 1299753 Part 2 - Create block formatting context for DetailsFrame if needed. r=bz
nsCSSFrameConstructor::ConstructNonScrollableBlock() has logic to
determine whether to create a block formatting context for a block
frame. I refactor the function to make it reusable by
nsCSSFrameConstructor::ConstructDetailsFrame().

Also, make NS_NewBlockFrame() accept two arguments as other frame
factory functions so that it could be pointed by BlockFrameCreationFunc.
NS_NewBlockFormattingContext is changed accordingly.

The construction for a scrollable DetailsFrame will be further revised
in Part 3.

MozReview-Commit-ID: 8TwG9YMyGva
2016-09-07 14:45:42 +08: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
Xidorn Quan
6161a647ce Bug 1291707 part 4 - Not recalc quotes and counters in EndUpdate. r=bz
It will be called in the next flush, so no need to do it eagerly.

MozReview-Commit-ID: 1B8pzn0dqBO
2016-08-23 10:31:26 +10:00
Emilio Cobos Álvarez
41ee485ee4 Bug 1290335: stylo: Allow processing change hints generated from Servo. r=heycam
MozReview-Commit-ID: Alc0wcXvHcD
2016-08-03 15:11:15 -07:00
Emilio Cobos Álvarez
7a245cf103 Bug 1290335: Hoist frame-construction logic in RestyleManager to static members in RestyleManagerBase. r=heycam
MozReview-Commit-ID: BqywJXZ0CYU
2016-08-03 15:11:15 -07:00
Astley Chen
ca13d10ee9 Bug 1277131 : Part 1 - rename nsTableOuterFrame to nsTableWrapperFrame. r=heycam
MozReview-Commit-ID: KrSHLbmovTM
2016-06-16 13:14:08 +01:00
Nathan Froyd
fdade54d79 Bug 1259733 - use forward declarations for nsIDocument in a few places; r=dholbert
This is sufficient for nsCSSFrameConstructor.h's needs, and the
corresponding C++ file already includes nsIDocument.h.
2016-04-27 14:48:36 -04:00
Daniel Holbert
ff3a1cedde Bug 1236400 part 2: Extend NeedsAnonFlexOrGridItem() & related code to wrap all inline-level -webkit-box children in an anonymous flex item. r=mats
MozReview-Commit-ID: LK4VW0xSI5m
2016-03-24 09:55:11 -07:00
Cameron McCormack
cbb5f757f4 Bug 1248864 - Part 3: Use RestyleManagerHandle instead of concrete restyle manager class. r=dholbert 2016-02-24 18:01:12 +11:00
Boris Chiou
32cdf253b7 Bug 1244049 - Part 2: Replace nsCSSPseudoElements::Type with CSSPseudoElementType. r=dbaron
Also, try to use forward declaraions for CSSPseudoElementType;
2016-02-17 21:37:00 +01:00
Ting-Yu Lin
5ec9e745ba Bug 591737 - Construct details and summary in nsCSSFrameConstructor. r=bz 2016-02-02 17:39:49 +08:00
Xidorn Quan
56b9331e0f Bug 1064843 part 10 - Create and render backdrop frame for top layer frames. r=dbaron 2016-01-28 10:11:00 +11:00
Xidorn Quan
fba483483d Bug 1064843 part 9 - Change nsCSSFrameConstructor::CreatePlaceholderFrameFor to accept parent style context. r=dbaron 2016-01-28 10:11:00 +11:00
Nicholas Nethercote
bb5a4f7dc2 Bug 1232852 (part 4) - Remove some unused parameters in and around layout/base/. r=heycam. 2016-01-05 16:08:17 -08: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
a0edd1fb5f Bug 1230863 - Remove unused nsPresContext args from many functions. r=roc. 2015-12-06 17:15:53 -08:00
Cameron McCormack
6fdc2f1032 Bug 1223228 - Remove unused nsFrameManagerBase::mStyleSet. r=dholbert 2015-11-10 12:27:47 +11:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Xidorn Quan
c80b532ea2 Bug 1201798 part 1 - Move PropagateScrollToViewport() from nsCSSFrameConstructor to nsPresContext as a public method. r=roc 2015-09-30 10:48:41 +10: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
Mats Palmgren
7e86280181 Bug 1009214 part 1 - [css-grid] Don't wrap placeholders in an anonymous grid item. r=dholbert 2015-05-05 21:53:22 +00:00
Andrea Marchesini
f0aa02df0b Bug 1156632 - Remove unused forward class declarations - patch 5 - rdf, parser, layout and something else, r=ehsan 2015-04-22 08:29:22 +02:00
Ehsan Akhgari
a7f747ec15 Bug 1118486 - Part 1: Use = delete instead of MOZ_DELETE directly; r=Waldo
Most of this patch (with the exception of dom/bindings/Codegen.py) was
generated by the following bash script:

#!/bin/bash

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "*/.git*" \
       ! -wholename "obj-*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -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 MOZ_DELETE '= delete'
2015-01-08 23:19:05 -05:00
Nicholas Nethercote
0a8532758b Bug 1113010 (part 2) - Shrink FrameConstructionItem by using bitfields. r=dholbert.
This reduces its size from 168 bytes to 160 bytes on 64-bit platforms.
2014-12-18 14:15:18 -08:00
Nicholas Nethercote
17b6b42428 Bug 1113010 (part 1) - Shrink FrameConstructionItem by reordering some fields. r=dholbert.
This reduces its size from 176 bytes to 168 bytes on 64-bit platforms.
2014-12-18 14:14:58 -08:00
Nicholas Nethercote
a2ab398e5e Bug 1113010 (part 0) - Remove impossible path in AddFrameConstruct(). r=dholbert.
Infallible new ensures that |item| is always non-null. And even if it didn't,
AppendItem() dereferences |item| before this code is reached.
2014-12-18 14:14:31 -08:00
Xidorn Quan
fad0cb2389 Bug 1088489 - Implement ruby pseudo box generation. r=bz 2014-12-08 21:45:56 +11:00
Xidorn Quan
f15922819e Bug 1088489 - Add const overload of item() & add assertion in them. r=bz 2014-12-14 09:19:46 +11:00