Граф коммитов

117 Коммитов

Автор SHA1 Сообщение Дата
Emilio Cobos Álvarez aefd1ddb30 Bug 1851787 - Plumb a DestroyContext through all functions that can destroy frames. r=dholbert
This prevents anonymous content getting destroyed at weird times
during frame destruction.

Differential Revision: https://phabricator.services.mozilla.com/D187693
2023-09-08 15:11:17 +00:00
Ting-Yu Lin c565d29604 Bug 1799732 Part 2 - Flatten the namespace for FrameChildList and co. by removing namespace layout. r=emilio
After moving FrameChildListID into mozilla namespace, `kPrincipalList` etc. are
also exposed in the mozilla namespace. In the next part, I'll convert
FrameChildListID enum into an enum class, so the naming pollution shouldn't be
an issue.

This patch has a nice side effect that it is now easier to remove all the
aliases of FrameChildListID (`kPrincipalList` etc.) defined in multiple places
since it is confusion to have the same thing written in different ways, e.g.
`nsIFrame::kPrincipalList`, `mozilla::layout::kPrincipalList`,
`FrameChildListID::kPrincipalList`, `kPrincipalList`.

This patch doesn't change behavior.

Differential Revision: https://phabricator.services.mozilla.com/D161863
2022-11-12 04:38:53 +00:00
Noemi Erli 7c40c0e983 Backed out 3 changesets (bug 1799732) for causing build bustages in nsIFrame.cpp CLOSED TREE
Backed out changeset e559f9dbc76f (bug 1799732)
Backed out changeset c40fda7a8b0b (bug 1799732)
Backed out changeset 1f84bfb41ab8 (bug 1799732)
2022-11-12 02:16:45 +02:00
Ting-Yu Lin 75940b1777 Bug 1799732 Part 2 - Flatten the namespace for FrameChildList and co. by removing namespace layout. r=emilio
After moving FrameChildListID into mozilla namespace, `kPrincipalList` etc. are
also exposed in the mozilla namespace. In the next part, I'll convert
FrameChildListID enum into an enum class, so the naming pollution shouldn't be
an issue.

This patch has a nice side effect that it is now easier to remove all the
aliases of FrameChildListID (`kPrincipalList` etc.) defined in multiple places
since it is confusion to have the same thing written in different ways, e.g.
`nsIFrame::kPrincipalList`, `mozilla::layout::kPrincipalList`,
`FrameChildListID::kPrincipalList`, `kPrincipalList`.

This patch doesn't change behavior.

Differential Revision: https://phabricator.services.mozilla.com/D161863
2022-11-11 23:44:16 +00:00
Ting-Yu Lin da28d9e26e Bug 1798373 Part 8 - Convert more frame list manipulation methods to take rvalue references of nsFrameList. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D160844
2022-11-01 21:15:55 +00:00
Ting-Yu Lin 1edf5571f6 Bug 1622008 Part 1 - Revise nsFrameManager's documentation. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D66598

--HG--
extra : moz-landing-system : lando
2020-03-12 21:50:18 +00:00
Masayuki Nakano 9c5913211a Bug 1544343 - part 1: Make nsFrameManager, nsCSSFrameConstructor and nsFrameConstructorState use mozilla::PresShell directly rather than via nsIPresShell r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D27475

--HG--
extra : moz-landing-system : lando
2019-04-16 07:24:29 +00:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Emilio Cobos Álvarez 14f2acc019 Bug 1461299: Make ESM not point to unbound NAC in the hover / active chain. r=smaug
MozReview-Commit-ID: 8mL7Yv3TwQM
2018-05-15 10:43:46 +02:00
Brindusan Cristian 1ff93ba361 Backed out 3 changesets (bug 1461299, bug 1460101) for reftest failures on events/EventStateManager.cpp CLOSED TREE
Backed out changeset fe2b8fcd7a47 (bug 1461299)
Backed out changeset 9a0ca81ddbce (bug 1461299)
Backed out changeset 783cf8b58ba4 (bug 1460101)
2018-05-15 03:13:29 +03:00
Emilio Cobos Álvarez ad6bf63946 Bug 1461299: Make ESM not point to unbound NAC in the hover / active chain. r=smaug
MozReview-Commit-ID: 8mL7Yv3TwQM
2018-05-15 01:17:34 +02:00
Brindusan Cristian 9fc8262d75 Backed out 2 changesets (bug 1461299) for debug crashtest failures on crashtests/626014.xhtml CLOSED TREE
Backed out changeset 699e9816b7ff (bug 1461299)
Backed out changeset 48f01ac94137 (bug 1461299)
2018-05-15 01:31:13 +03:00
Emilio Cobos Álvarez cf0ce82b71 Bug 1461299: Make ESM not point to unbound NAC in the hover / active chain. r=smaug
MozReview-Commit-ID: 8mL7Yv3TwQM
2018-05-14 21:55:09 +02:00
Emilio Cobos Álvarez 467bef5590 Bug 1454503: Remove unused nsFrameManager::mIsDestroyingFrames. r=xidorn
MozReview-Commit-ID: 4105FqU8Xxm
2018-04-17 11:25:04 +02:00
Emilio Cobos Álvarez c0f2f96f66 Bug 1303605: Remove the undisplayed maps. r=bz,mats
This is mostly code removal, changing GetDisplayContentsStyle(..) checks by an
FFI call to Servo.

The tricky parts are:

 * MaybeCreateLazily, which I fixed to avoid setting bits under display: none
   stuff. This was a pre-existing problem, which was wallpapered by the
   sc->IsInDisplayNoneSubtree() check, which effectively made the whole
   assertion useless (see bug 1381017 for the only crashtest that hit this
   though).

 * ContentRemoved, where we can no longer know for sure whether the element is
   actually display: contents if we're removing it as a response to a style
   change. See the comment there. That kinda sucks, but that case is relatively
   weird, and it's better than adding tons of complexity to handle that.

 * GetParentComputedStyle, which also has a comment there. Also, this function
   has only one caller now, so we should maybe try to remove it.

The different assertions after DestroyFramesForAndRestyle are changed for a
single assertion in the function itself, and the node bit used as an
optimization to avoid hashtable lookups is taken back.

MozReview-Commit-ID: AZm822QnhF9
2018-04-07 15:21:56 +02:00
Emilio Cobos Álvarez e341b20ec4 Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt on a CLOSED TREE
MozReview-Commit-ID: JPopq0LudD
2018-03-22 20:06:24 +01:00
Emilio Cobos Álvarez 5dd797f154 Back out changeset b683bb3f22a1 (Bug 1447483) for not landing with all the files. r=me on a CLOSED TREE
This reverts commit 1808914126bb9f9e4a82d2c3d7ac961885fe7d62.

MozReview-Commit-ID: 5skESBseEvo
2018-03-22 20:05:22 +01:00
Emilio Cobos Álvarez ca5ac79cca Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt
MozReview-Commit-ID: JPopq0LudD
2018-03-22 19:48:42 +01:00
Emilio Cobos Álvarez 72f6feaa97 Bug 1024082: Remove nsFrameManagerBase. r=dholbert
Instead move UndisplayedNode to its own file, which is what causes the include
hell due to requiring nsIContent / nsStyleContext.

MozReview-Commit-ID: 1opiajueZNb
2018-03-07 10:17:48 +01:00
Xidorn Quan d6a3786a64 Bug 1440221 - Track stale computed values and style structs held by undisplayed maps in memory report. r=emilio,njn
MozReview-Commit-ID: 8eXowQvUjyi

--HG--
extra : rebase_source : cb5ba6598e90d9600983aad7f1fff4ff361e8af7
2018-02-22 23:19:50 +11:00
Daniel Holbert 680815cd6e Bug 1412346 part 5: (automated patch) Switch a bunch of C++ files in layout to use our standard mode lines. r=jfkthame
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: EuRsDue63tK

--HG--
extra : rebase_source : 3356d4b80ff6213935192e87cdbc9103fec6084c
2017-10-27 10:33:53 -07:00
Bobby Holley 8fb4fb3d6c Bug 1393791 - Stop unbinding native-anonymous content off a script runner. r=emilio
The failure mode in the attached crashtest is an inconsistency in the flattened
tree. Specifically, we null out mVideoControls in an nsVideoFrame, but defer
the UnbindFromTree call on that NAC element, which measn that its mParent still
points to the nsVideoFrame's mContent. Because all this stuff runs off of script
runners, and the anonymous content destroyer is not guaranteed to run before
other potential script runners, we end up running arbitrary script while the
tree mismatch exists. This script calls back into ProcessPendingRestyles, which
causes trouble.

We could build a separate deferral mechanism, but it's not clear that we actually
need to defer the unbind anymore. The deferred unbind was added in bug 489008,
which predated a lot of simplifications in layout/dom interaction.

MozReview-Commit-ID: 1JYAhiXKVJC
2017-08-27 15:29:36 -07:00
Michael Kaply 73bafcec5e Bug 1389168 - Remove unnecessary IBM license text. r=gerv
MozReview-Commit-ID: 8HdaBppsJsc

--HG--
extra : rebase_source : 617c17b1162265e44810597fa69d533316da1a6b
2017-08-16 16:10:56 -05:00
Jonathan Watt 2cfb66940a Bug 1367214, part 2 - Ensure that all the UndisplayedMap handling code consistently acts on the normalized parent. r=dholbert
We have four entry points that deal with the parents of display:none/
display:contents content.  These are the functions for setting, changing,
getting and removing a style context.  Or more specifically:

GetUndisplayedNodeInMapFor
  called by GetDisplay[None|Contents]StyleFor (via GetStyleContextInMap)

SetStyleContextInMap
  called by RegisterDisplay[None|Contents]StyleFor

ChangeStyleContextInMap
  called by ChangeRegisteredDisplay[None|Contents]StyleFor

UnregisterDisplay[None|Contents]StyleFor
  okay, this is actually two functions, but they act as a pair

This change makes all these functions call GetApplicableParent up front and act
on and pass around the parent that it returns.  This is so that throughout
the code we are always handling the parent that will be used as the key in
the UndisplayedMap entry.  This is necessary so that all the code that
sets/gets the 'MayHaveChildrenWithLayoutBoxesDisabled' bit on/from an
nsIContent object is using the same object, otherwise everything breaks down.

MozReview-Commit-ID: 6gso1tyr33E
2017-08-04 14:52:25 +01:00
Jonathan Watt 3d364409fe Bug 1388939, part 8 - Remove nsFrameManager::GetDisplayContentsNodeFor and rewrite its caller to use other APIs. r=dholbert
MozReview-Commit-ID: 6S4MpwBlrjj
2017-08-02 09:56:28 +01:00
Jonathan Watt 0802c22f8d Bug 1388939, part 7 - Give clear names to the nsFrameManager methods for unregistering undisplayed style contexts. r=dholbert
MozReview-Commit-ID: EFtKqKBOPQH
2017-08-01 17:12:44 +01:00
Jonathan Watt 80b5a0301e Bug 1388939, part 6 - Give clear names to the nsFrameManager methods for obtaining the linked list of undisplayed style contexts for a node. r=dholbert
MozReview-Commit-ID: 5EuaFzCW4Lh
2017-08-01 17:03:07 +01:00
Jonathan Watt 26a2ad3013 Bug 1388939, part 5 - Rename nsFrameManager::GetUndisplayedContent to GetDisplayNoneStyleFor. r=dholbert
MozReview-Commit-ID: Kpe6DcBP8yX
2017-08-01 15:27:59 +01:00
Jonathan Watt bde9e960a3 Bug 1388939, part 4 - Give clear names to the nsFrameManager methods for updating the registered undisplayed style contexts. r=dholbert
MozReview-Commit-ID: LZuleDSt6LR
2017-08-01 15:11:02 +01:00
Jonathan Watt b1c7a0f236 Bug 1388939, part 3 - Give clear names to the nsFrameManager methods for registering undisplayed style contexts. r=dholbert
MozReview-Commit-ID: 1i2ilfWXcvo
2017-08-01 15:04:36 +01:00
Jonathan Watt bd066a2927 Bug 1388939, part 2 - Pair up and document the various nsFrameManager methods for keeping track of "undisplayed" style contexts. r=dholbert
MozReview-Commit-ID: F8GvrXdvLEm
2017-08-01 14:43:15 +01:00
Jonathan Watt e8f2e75737 Bug 1388939, part 1 - Rename nsFrameManagerBase::mUndisplayedMap to mDisplayNoneMap. r=dholbert
MozReview-Commit-ID: 94vA4YJ2u
2017-08-01 13:50:23 +01:00
Mats Palmgren ca48e27205 Bug 1367217 - Merge ClearAllUndisplayedContentIn / ClearAllDisplayContentsIn to avoid doing duplicated work. r=dholbert
MozReview-Commit-ID: 2oYliXTf1nr
2017-06-08 12:48:31 +02:00
Mats Palmgren 357e4b9560 bug 1368547 part 2 - Remove nsFrameManager/PresShell methods dealing with placeholders and introduce a nsIFrame::GetPlaceholderFrame() convenience method. r=jfkthame
MozReview-Commit-ID: GBUiUBqJxhQ
2017-05-31 21:29:49 +02:00
Emilio Cobos Álvarez c8a5bc5165 Bug 1296516: Convert UndisplayedMap to a typed hashtable. r=heycam
MozReview-Commit-ID: g54ekayP2y
2017-03-20 22:28:15 +01:00
Emilio Cobos Álvarez a079d79f65 Bug 1296516: Indentation nits in nsFrameManager. r=heycam
MozReview-Commit-ID: L98VVegeATX
2017-03-20 22:28:14 +01:00
Emilio Cobos Álvarez b903e8dcf2 Bug 1341083: Don't fall back to reframing with display: contents. r=heycam
MozReview-Commit-ID: KD3QBiU7M5f
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-02-25 19:15:43 +01:00
Emilio Cobos Álvarez 2cbefa7db5 Bug 1341083: Implement dynamic restyling for display: contents. r=heycam
MozReview-Commit-ID: KimTU2j4V4p
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-02-25 19:15:38 +01:00
Mats Palmgren c57b9fd7a3 Bug 731096 - Make nsFrameManager::RegisterPlaceholderFrame infallible. r=dholbert 2017-01-04 00:56:19 +01:00
Jonathan Watt b15368cfcb Bug 1279451 - Remove a lot of unnecessary includes of nsAutoPtr.h. rs=sparky 2016-06-07 21:10:18 +01:00
Cameron McCormack edcec9eefe Bug 1223228 - Remove unused nsFrameManagerBase::mStyleSet. r=dholbert 2015-11-10 12:27:47 +11:00
Nathan Froyd 01583602a9 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

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Mats Palmgren 994ddfd821 Bug 907396 - Frame manager support for display:contents. r=bzbarsky 2014-11-20 18:24:09 +00:00
Daniel Holbert 901461ddb7 Bug 1024084: Clean up forward declarations and #includes in nsFrameManager.h and nsFrameManagerBase.h. r=jwatt 2014-06-12 10:09:31 -07:00
Daniel Holbert a8e9a7e70c backout 703d26e9d979 (Bug 1024084) for Android bustage, on a CLOSED TREE 2014-06-11 16:10:29 -07:00
Jonathan Watt 0f23c6cd87 Bug 1024138 - Remove the GetPresShell() and GetPresContext() methods from nsFrameManager. r=dholbert 2014-06-11 23:38:17 +01:00
Daniel Holbert d4dc8d8c50 Bug 1024084: Use forward declarations instead of #includes for nsIFrame & nsContent in nsFrameManager.h. r=jwatt 2014-06-11 15:35:17 -07:00
Robert O'Callahan fc44c75519 Bug 1015664. Part 4: Remove NS_HIDDEN in a few miscellaneous places. r=bsmedberg 2014-06-03 00:08:29 +12:00
Robert O'Callahan 2a92625af7 Bug 1015664. Part 2: Remove some NS_HIDDEN usage. r=bsmedberg 2014-06-03 00:08:24 +12:00
Robert O'Callahan cbb8fdebfc Bug 1015664. Part 1: Remove NS_HIDDEN_() usage. r=bsmedberg 2014-06-03 00:08:21 +12:00