Bug 931668 - Part 1: Add a change hint that represents a style data change that requires no processing. r=dbaron

--HG--
extra : rebase_source : 9035e376bfc53a18d6499407ad5958706aefcb7a
Bug 931668 - Part 2: Return nsChangeHint_NeutralChange where there was a style data change and we currently return nsChangeHint(0). r=dbaron

--HG--
extra : rebase_source : 17548a130559ea5b88e8e5a1fe5cc6206bd080b9
Bug 931668 - Part 3: Add a style context bit to represent whether it depends on style data from its grandparent or higher ancestor. r=dbaron

--HG--
extra : rebase_source : 64deabb466cfaaeae220a00024cd05d8e87832bc
Bug 931668 - Part 5 (no part 4): Record whether a style context is shared. r=dbaron

--HG--
extra : rebase_source : f000e310e7f429cc7656a9f375312ddf8e162c7a
Bug 931668 - Part 6: Add helper function to check if a style context has any children with the NS_STYLE_USES_GRANDANCESTOR_STYLE bit. r=dbaron

--HG--
extra : rebase_source : d0d5ea22e06509b3638d860f85a21506da7382fa
Bug 931668 - Part 7: Add helper functions looking at cached struct pointer values on style contexts. r=dbaron

Two functions are added:

  * HasSameCachedStyleData, which compares a style struct pointer in two
    style contexts, and
  * HasCachedInheritedStyleData, which checks to see if the bit in mBits
    is set.

--HG--
extra : rebase_source : 92f9a42b15fc5537044b033eb960e564196850de
Bug 931668 - Part 9 (no part 8): Make nsStyleContext::CalcStyleDifference compare all structs and return a bitfield of which changed. r=dbaron

--HG--
extra : rebase_source : 817e73531548183645c94ece67ad6a87c5de36c6
Bug 931668 - Part 10: Record pending restyles of restyle root descendants and ensure we restyle them if we didn't get to them. r=dbaron

--HG--
extra : rebase_source : b259e02c38362a12735158e30d6aa54556cf54ab
Bug 931668 - Part 11: Add eRestyle_Force (and eRestyle_ForceDescendants) restyle hints to control whether the frame (and all of its descendants) must be assigned its new style context even if it had the same style data as the old style context. r=dbaron

--HG--
extra : rebase_source : f92a5b5033bb4cf424ee172611a58fe583aed87f
Bug 931668 - Part 13 (no part 12): Add expensive (commented out) debug checks that destroyed style structs aren't still used in the style context tree. r=dbaron

--HG--
extra : rebase_source : 84217c186a6cced3ea5bac22590ecd4ddb0d7a5d
Bug 931668 - Part 14: Add functions to move style contexts to a new parent. r=dbaron

--HG--
extra : rebase_source : 90affb5987ab33e948366840dd3cc5a6d7ea1fd9
Bug 931668 - Part 15: Pass equal struct bitfield back out of ElementRestyler::CaptureChange. r=dbaron

--HG--
extra : rebase_source : 70d70eeab3989a7991ae2a2abdeb21c0745b0398
Bug 931668 - Part 16: Give ElementRestyler::RestyleSelf a return value that indicates how restyling should proceed. r=dbaron

--HG--
extra : rebase_source : e9bcb021f40bef402b7bcb00a097d18efa4a813b
Bug 931668 - Part 17: Handle eRestyleResult_Stop by moving a frame's style context to its new parent. r=dbaron

--HG--
extra : rebase_source : 50c6575821407b548ac0b805fa7f351e5ddbda53
Bug 931668 - Part 18: Add a function to swap style structs between style contexts. r=dbaron

--HG--
extra : rebase_source : 4d32ed1f140db975b2fffe76ac6bd793287c916c
Bug 931668 - Part 19: Make RebuildAllStyleData use eRestyle_ForceDescendants so that it does rebuild the whole style tree. r=dbaron

--HG--
extra : rebase_source : 874f6c186d649c209235261f933e7ebd2853f294
Bug 931668 - Part 20: Stop the recursive restyling process when we detect it is safe to do so. r=dbaron

--HG--
extra : rebase_source : 33eba29b1ef05b72c671dcc61d6a997ad492ceb1
Bug 931668 - Part 20.1: Keep old structs on new style contexts, for those that are equal. r=dbaron

We don't do struct swapping if either the old or new style contexts are
shared, since we can't guarantee that such a change will be valid for
all frames that use the shared style context.

--HG--
extra : rebase_source : 10f7c90422de23b119287ba478d36433423440da
Bug 931668 - Part 20.2: Don't call AssertStructsNotUsedElsewhere on style contexts for :before/:after frames that are going away. r=dbaron

--HG--
extra : rebase_source : 7ff96443db553d564897d42870b81e10c2a78b53
Bug 931668 - Part 21: Fix issue where not all pending-restyle descendants are restyled. r=dbaron

--HG--
extra : rebase_source : 824fe576885ec4f5ab086499dfaa6e95456afd50