Commit Graph

25 Commits

Author SHA1 Message Date
Daniel Holbert
501666c627 Bug 984786 part 1: Add MOZ_FINAL and private destructors to some refcounted classes in layout. r=dbaron 2014-03-21 09:16:20 +08:00
L. David Baron
d01753dad0 Bug 828312 patch 11: Don't generate change hints for restyling of later continuations, since the handling of the change hints from the first continuation is required to do the necessary work. r=bzbarsky
This depends on bug 898333 in order to avoid causing:
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/chrome/dom/tests/mochitest/chrome/test_focused_link_scroll.xul | Assertion count 1 is greater than expected range 0-0 assertions.
due to the assertion:
###!!! ASSERTION: Shouldn't be trying to restyle non-elements directly: '!aContent || aContent->IsElement()', file ../../../layout/base/nsStyleChangeList.cpp, line 62

The assertion count change in layout/generic/crashtests/571995.xhtml is
expected because it changes us from having 7 of:
###!!! ASSERTION: Shouldn't be trying to restyle non-elements directly: '!aContent || aContent->IsElement()', file ../../../layout/base/nsStyleChangeList.cpp, line 62
with the stack:
  mozilla::ElementRestyler::CaptureChange(nsStyleContext*, nsStyleContext*, nsChangeHint) [layout/base/nsChangeHint.h:191]
  mozilla::ElementRestyler::RestyleSelf(nsRestyleHint) [layout/base/RestyleManager.cpp:2304]
to only having one.  This is expected since this patch changes
RestyleSelf to only call CaptureChange for the first continuation or
block-in-inline sibling.
2013-09-25 12:28:08 -07:00
L. David Baron
c18e1d2515 Bug 898333, patch 2: Change RestyleManager::Restyle's tree traversal to reach next-continuations (and same-display block-in-inline siblings) from their prev-continuation rather than from their parent. r=bzbarsky
This patch fundamentally makes three changes:

 (1) Change the way RestyleSelf is used so that it is called in a loop,
     over all of the same-style continuations and block-in-inline
     siblings.
     (I had a note here reminding myself:
       TODO: Don't set hints for descendants!
     but I no longer remember what it meant.)

 (2) Change the traversal of children to traverse all of the children of
     the items traversed in (1).

 (3) When traversing children, skip children that are continuations,
     since we already reached them in (1) and (2).

A later patch will change the RestyleSelf loop to copy for the later
continuations rather than repeating the work.  This will mean reverting
many of the RestyleSelf changes contained here.

Some of the pieces marked temporary will be removed in bug 828312 patch
11, and the rest should hopefully be removed in bug 918064.
2013-09-25 12:28:07 -07:00
Alex Xu
8a51ad6d90 Bug 900284: Use #ifdef ACCESSIBILITY around member variables only used inside #ifdef ACCESSIBILITY, to avoid clang warnings (and reduce object size with --disable-accessibility). r=dbaron 2013-07-31 19:15:19 -07:00
L. David Baron
15b84a4c52 Bug 898329 patch 7: Split ElementRestyler::Restyle into multiple functions. r=heycam 2013-07-30 17:36:11 -07:00
L. David Baron
20d571f36c Bug 898329 patch 5: Create and use ElementRestyler::mResolvedChild. r=heycam 2013-07-30 17:36:11 -07:00
L. David Baron
099ddebdb4 Bug 898329 patch 3: Create and use ElementRestyler::mWasFrameVisible. r=heycam 2013-07-30 17:36:11 -07:00
L. David Baron
2483ea2e02 Bug 898209 patch 14: Add constructor flags to ElementRestyler's regular constructor so we can avoid manipulating mHintsHandled from the outside. r=heycam
This is the first of two patches added on top to address review comments
on patch 2.
2013-07-30 17:36:10 -07:00
L. David Baron
7b58599cf0 Bug 898209 patch 13: Create and use ElementRestyler::mTreeMatchContext. r=heycam 2013-07-30 17:36:10 -07:00
L. David Baron
404c7c2333 Bug 898209 patch 12: Create and use ElementRestyler::mVisibleKidsOfHiddenElement. r=heycam 2013-07-30 17:36:10 -07:00
L. David Baron
cdecdd4413 Bug 898209 patch 11: Create and use member variables for accessibility notifications. r=heycam 2013-07-30 17:36:10 -07:00
L. David Baron
53a139827c Bug 898209 patch 10: Create and use ElementRestyler::mRestyleTracker. r=heycam 2013-07-30 17:36:10 -07:00
L. David Baron
bec12fb9f3 Bug 898209 patch 9: Create and use ElementRestyler::mParentFrameHintsNotHandledForDescendants and mHintsNotHandledForDescendants. r=heycam 2013-07-30 17:36:10 -07:00
L. David Baron
82a0a650a6 Bug 898209 patch 8: Create and use ElementRestyler::mChangeList. r=heycam 2013-07-30 17:36:10 -07:00
L. David Baron
d81ab3552b Bug 898209 patch 6: Create and use ElementRestyler::mParentContent and mContent. r=heycam 2013-07-30 17:36:09 -07:00
L. David Baron
a413b968a0 Bug 898209 patch 4: Remove aPresContext parameter to ElementRestyler::Restyle. r=heycam 2013-07-30 17:36:09 -07:00
L. David Baron
9b61f8671b Bug 898209 patch 3: Create and use ElementRestyler::mFrame. r=heycam 2013-07-30 17:36:09 -07:00
L. David Baron
ca739cf173 Bug 898209 patch 2: Create and use ElementRestyler::mHintsHandled. r=heycam 2013-07-30 17:36:09 -07:00
L. David Baron
6b056b0c80 Bug 898209 patch 1: Add ElementRestyler class to begin refactoring ReResolveStyleContext. r=heycam 2013-07-30 17:36:09 -07:00
L. David Baron
ffe927da2c Bug 896138 patch 10: Move beginning and ending of ProcessPendingRestyles into helper functions on the RestyleManager. r=heycam 2013-07-30 17:36:08 -07:00
Robert O'Callahan
55bf3f0888 Bug 886295. Backout fix for bug 880854 to fix regression. r=mats
--HG--
extra : rebase_source : 66bc089c3ece4dbe4f6533fce97a902abdd4871a
2013-07-22 14:04:46 +12:00
L. David Baron
0a56a39306 Bug 896138 patch 8: Add setter for RestyleManager::mInStyleRefresh rather than using friend. r=heycam (within review comments for patch 4)
(The friend declaration is still needed for access to RestyleElement,
which I'd rather leave private.)
2013-07-20 12:14:25 -07:00
L. David Baron
539703de44 Bug 896138 patch 6: Move restyle management code from nsFrameManager to RestyleManager. r=heycam
This is the second of two big chunks of code moved into the new
RestyleManager class from another sources.

Note that the undisplayed map remains in nsFrameManager, although it
could perhaps have moved.
2013-07-20 12:14:25 -07:00
L. David Baron
a7c8d44db9 Bug 896138 patch 4: Move restyle management code from nsCSSFrameConstructor to RestyleManager. r=heycam
This moves restyling management out of nsCSSFrameConstructor (thus
reducing its size), and keeps the restyling code closer together.

This is the first of two big chunks of code moved in this patch series.
A later patch in this series will move related code from nsFrameManager
into the same destination file.
2013-07-20 12:14:25 -07:00
L. David Baron
62621bb025 Bug 896138 patch 2: Add a RestyleManager class. r=heycam
The later patches in this series will move restyling code into this file
from nsCSSFrameConstructor and nsFrameManager.
2013-07-20 12:14:24 -07:00