Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Backout bug 157681 in order to fix bug 775350 on Beta; a=lsblakk

  • Loading branch information...
commit d9198874e0b4884d09e8b9a066d4117383ebcd98 1 parent 589fce8
Ehsan Akhgari authored September 26, 2012

Showing 149 changed files with 61 additions and 2,756 deletions. Show diff stats Hide diff stats

  1. 153  layout/base/nsCSSFrameConstructor.cpp
  2. 5  layout/base/nsCSSFrameConstructor.h
  3. 32  layout/base/nsChangeHint.h
  4. 5  layout/base/nsFrameManager.cpp
  5. 65  layout/generic/nsHTMLReflowState.cpp
  6. 12  layout/generic/nsHTMLReflowState.h
  7. 10  layout/reftests/position-dynamic-changes/handleprop.js
  8. 62  layout/reftests/position-dynamic-changes/horizontal/animate.js
  9. 19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftA-widthA-rightN.html
  10. 19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftA-widthN-rightA.html
  11. 19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftA-widthN-rightN.html
  12. 19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftN-widthA-rightA-2.html
  13. 19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftN-widthA-rightA.html
  14. 19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftN-widthA-rightN-2.html
  15. 19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftN-widthA-rightN.html
  16. 19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftN-widthN-rightA.html
  17. 15  layout/reftests/position-dynamic-changes/horizontal/leftA-widthA-rightN-ref.html
  18. 19  layout/reftests/position-dynamic-changes/horizontal/leftA-widthA-rightN.html
  19. 15  layout/reftests/position-dynamic-changes/horizontal/leftA-widthN-rightA-ref.html
  20. 19  layout/reftests/position-dynamic-changes/horizontal/leftA-widthN-rightA.html
  21. 15  layout/reftests/position-dynamic-changes/horizontal/leftA-widthN-rightN-ref.html
  22. 19  layout/reftests/position-dynamic-changes/horizontal/leftA-widthN-rightN.html
  23. 15  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightA-2-ref.html
  24. 19  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightA-2.html
  25. 15  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightA-ref.html
  26. 19  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightA.html
  27. 15  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightN-2-ref.html
  28. 19  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightN-2.html
  29. 15  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightN-ref.html
  30. 19  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightN.html
  31. 15  layout/reftests/position-dynamic-changes/horizontal/leftN-widthN-rightA-ref.html
  32. 19  layout/reftests/position-dynamic-changes/horizontal/leftN-widthN-rightA.html
  33. 18  layout/reftests/position-dynamic-changes/horizontal/reftest.list
  34. 26  layout/reftests/position-dynamic-changes/horizontal/reftest_border_abspos.list
  35. 26  layout/reftests/position-dynamic-changes/horizontal/reftest_border_parent.list
  36. 26  layout/reftests/position-dynamic-changes/horizontal/reftest_margin_abspos.list
  37. 26  layout/reftests/position-dynamic-changes/horizontal/reftest_margin_parent.list
  38. 26  layout/reftests/position-dynamic-changes/horizontal/reftest_padding_abspos.list
  39. 26  layout/reftests/position-dynamic-changes/horizontal/reftest_padding_parent.list
  40. 26  layout/reftests/position-dynamic-changes/horizontal/reftest_plain.list
  41. 20  layout/reftests/position-dynamic-changes/horizontal/style.css
  42. 15  layout/reftests/position-dynamic-changes/horizontal/toauto-leftA-widthA-rightN-ref.html
  43. 19  layout/reftests/position-dynamic-changes/horizontal/toauto-leftA-widthA-rightN.html
  44. 15  layout/reftests/position-dynamic-changes/horizontal/toauto-leftA-widthN-rightA-ref.html
  45. 19  layout/reftests/position-dynamic-changes/horizontal/toauto-leftA-widthN-rightA.html
  46. 15  layout/reftests/position-dynamic-changes/horizontal/toauto-leftA-widthN-rightN-ref.html
  47. 19  layout/reftests/position-dynamic-changes/horizontal/toauto-leftA-widthN-rightN.html
  48. 15  layout/reftests/position-dynamic-changes/horizontal/toauto-leftN-widthA-rightA-2-ref.html
  49. 19  layout/reftests/position-dynamic-changes/horizontal/toauto-leftN-widthA-rightA-2.html
  50. 15  layout/reftests/position-dynamic-changes/horizontal/toauto-leftN-widthA-rightA-ref.html
  51. 19  layout/reftests/position-dynamic-changes/horizontal/toauto-leftN-widthA-rightA.html
  52. 15  layout/reftests/position-dynamic-changes/horizontal/toauto-leftN-widthA-rightN-2-ref.html
  53. 19  layout/reftests/position-dynamic-changes/horizontal/toauto-leftN-widthA-rightN-2.html
  54. 15  layout/reftests/position-dynamic-changes/horizontal/toauto-leftN-widthA-rightN-ref.html
  55. 19  layout/reftests/position-dynamic-changes/horizontal/toauto-leftN-widthA-rightN.html
  56. 15  layout/reftests/position-dynamic-changes/horizontal/toauto-leftN-widthN-rightA-ref.html
  57. 19  layout/reftests/position-dynamic-changes/horizontal/toauto-leftN-widthN-rightA.html
  58. 10  layout/reftests/position-dynamic-changes/max-width-ref.html
  59. 17  layout/reftests/position-dynamic-changes/max-width.html
  60. 13  layout/reftests/position-dynamic-changes/min-width-ref.html
  61. 20  layout/reftests/position-dynamic-changes/min-width.html
  62. 21  layout/reftests/position-dynamic-changes/mixed-abspos-root/mixed-dimentionA-ref.html
  63. 38  layout/reftests/position-dynamic-changes/mixed-abspos-root/mixed-dimentionA.html
  64. 21  layout/reftests/position-dynamic-changes/mixed-abspos-root/mixed-dimentionN-ref.html
  65. 38  layout/reftests/position-dynamic-changes/mixed-abspos-root/mixed-dimentionN.html
  66. 18  layout/reftests/position-dynamic-changes/mixed-abspos-root/reftest.list
  67. 4  layout/reftests/position-dynamic-changes/mixed-abspos-root/reftest_border_abspos.list
  68. 4  layout/reftests/position-dynamic-changes/mixed-abspos-root/reftest_border_parent.list
  69. 4  layout/reftests/position-dynamic-changes/mixed-abspos-root/reftest_margin_abspos.list
  70. 4  layout/reftests/position-dynamic-changes/mixed-abspos-root/reftest_margin_parent.list
  71. 4  layout/reftests/position-dynamic-changes/mixed-abspos-root/reftest_padding_abspos.list
  72. 4  layout/reftests/position-dynamic-changes/mixed-abspos-root/reftest_padding_parent.list
  73. 4  layout/reftests/position-dynamic-changes/mixed-abspos-root/reftest_plain.list
  74. 22  layout/reftests/position-dynamic-changes/mixed-abspos-root/style.css
  75. 23  layout/reftests/position-dynamic-changes/mixed/mixed-dimentionA-ref.html
  76. 40  layout/reftests/position-dynamic-changes/mixed/mixed-dimentionA.html
  77. 23  layout/reftests/position-dynamic-changes/mixed/mixed-dimentionN-ref.html
  78. 40  layout/reftests/position-dynamic-changes/mixed/mixed-dimentionN.html
  79. 18  layout/reftests/position-dynamic-changes/mixed/reftest.list
  80. 4  layout/reftests/position-dynamic-changes/mixed/reftest_border_abspos.list
  81. 4  layout/reftests/position-dynamic-changes/mixed/reftest_border_parent.list
  82. 4  layout/reftests/position-dynamic-changes/mixed/reftest_margin_abspos.list
  83. 4  layout/reftests/position-dynamic-changes/mixed/reftest_margin_parent.list
  84. 4  layout/reftests/position-dynamic-changes/mixed/reftest_padding_abspos.list
  85. 4  layout/reftests/position-dynamic-changes/mixed/reftest_padding_parent.list
  86. 4  layout/reftests/position-dynamic-changes/mixed/reftest_plain.list
  87. 22  layout/reftests/position-dynamic-changes/mixed/style.css
  88. 15  layout/reftests/position-dynamic-changes/multiple-changes-ref.html
  89. 23  layout/reftests/position-dynamic-changes/multiple-changes.html
  90. 10  layout/reftests/position-dynamic-changes/reftest.list
  91. 32  layout/reftests/position-dynamic-changes/relative/animate.js
  92. 12  layout/reftests/position-dynamic-changes/relative/move-right-bottom-ref.html
  93. 13  layout/reftests/position-dynamic-changes/relative/move-right-bottom-table-ref.html
  94. 17  layout/reftests/position-dynamic-changes/relative/move-right-bottom-table.html
  95. 16  layout/reftests/position-dynamic-changes/relative/move-right-bottom.html
  96. 12  layout/reftests/position-dynamic-changes/relative/move-top-left-ref.html
  97. 13  layout/reftests/position-dynamic-changes/relative/move-top-left-table-ref.html
  98. 17  layout/reftests/position-dynamic-changes/relative/move-top-left-table.html
  99. 16  layout/reftests/position-dynamic-changes/relative/move-top-left.html
  100. 2  layout/reftests/position-dynamic-changes/relative/reftest.list
  101. 9  layout/reftests/position-dynamic-changes/relative/style.css
  102. 24  layout/reftests/position-dynamic-changes/shrink-wrap-ref.html
  103. 17  layout/reftests/position-dynamic-changes/shrink-wrap.html
  104. 61  layout/reftests/position-dynamic-changes/vertical/animate.js
  105. 19  layout/reftests/position-dynamic-changes/vertical/fromauto-topA-heightA-bottomN.html
  106. 19  layout/reftests/position-dynamic-changes/vertical/fromauto-topA-heightN-bottomA.html
  107. 19  layout/reftests/position-dynamic-changes/vertical/fromauto-topA-heightN-bottomN.html
  108. 19  layout/reftests/position-dynamic-changes/vertical/fromauto-topN-heightA-bottomA-2.html
  109. 19  layout/reftests/position-dynamic-changes/vertical/fromauto-topN-heightA-bottomA.html
  110. 19  layout/reftests/position-dynamic-changes/vertical/fromauto-topN-heightA-bottomN-2.html
  111. 19  layout/reftests/position-dynamic-changes/vertical/fromauto-topN-heightA-bottomN.html
  112. 19  layout/reftests/position-dynamic-changes/vertical/fromauto-topN-heightN-bottomA.html
  113. 18  layout/reftests/position-dynamic-changes/vertical/reftest.list
  114. 12  layout/reftests/position-dynamic-changes/vertical/reftest.listbackup
  115. 20  layout/reftests/position-dynamic-changes/vertical/reftest_border_abspos.list
  116. 20  layout/reftests/position-dynamic-changes/vertical/reftest_border_parent.list
  117. 20  layout/reftests/position-dynamic-changes/vertical/reftest_margin_abspos.list
  118. 20  layout/reftests/position-dynamic-changes/vertical/reftest_margin_parent.list
  119. 20  layout/reftests/position-dynamic-changes/vertical/reftest_padding_abspos.list
  120. 20  layout/reftests/position-dynamic-changes/vertical/reftest_padding_parent.list
  121. 20  layout/reftests/position-dynamic-changes/vertical/reftest_plain.list
  122. 19  layout/reftests/position-dynamic-changes/vertical/style.css
  123. 15  layout/reftests/position-dynamic-changes/vertical/toauto-topA-heightA-bottomN-ref.html
  124. 19  layout/reftests/position-dynamic-changes/vertical/toauto-topA-heightA-bottomN.html
  125. 15  layout/reftests/position-dynamic-changes/vertical/toauto-topA-heightN-bottomA-ref.html
  126. 19  layout/reftests/position-dynamic-changes/vertical/toauto-topA-heightN-bottomA.html
  127. 15  layout/reftests/position-dynamic-changes/vertical/toauto-topA-heightN-bottomN-ref.html
  128. 19  layout/reftests/position-dynamic-changes/vertical/toauto-topA-heightN-bottomN.html
  129. 15  layout/reftests/position-dynamic-changes/vertical/toauto-topN-heightA-bottomA-ref.html
  130. 19  layout/reftests/position-dynamic-changes/vertical/toauto-topN-heightA-bottomA.html
  131. 15  layout/reftests/position-dynamic-changes/vertical/toauto-topN-heightA-bottomN-ref.html
  132. 19  layout/reftests/position-dynamic-changes/vertical/toauto-topN-heightA-bottomN.html
  133. 15  layout/reftests/position-dynamic-changes/vertical/toauto-topN-heightN-bottomA-ref.html
  134. 19  layout/reftests/position-dynamic-changes/vertical/toauto-topN-heightN-bottomA.html
  135. 15  layout/reftests/position-dynamic-changes/vertical/topA-heightA-bottomN-ref.html
  136. 19  layout/reftests/position-dynamic-changes/vertical/topA-heightA-bottomN.html
  137. 15  layout/reftests/position-dynamic-changes/vertical/topA-heightN-bottomA-ref.html
  138. 19  layout/reftests/position-dynamic-changes/vertical/topA-heightN-bottomA.html
  139. 15  layout/reftests/position-dynamic-changes/vertical/topA-heightN-bottomN-ref.html
  140. 19  layout/reftests/position-dynamic-changes/vertical/topA-heightN-bottomN.html
  141. 15  layout/reftests/position-dynamic-changes/vertical/topN-heightA-bottomA-ref.html
  142. 19  layout/reftests/position-dynamic-changes/vertical/topN-heightA-bottomA.html
  143. 15  layout/reftests/position-dynamic-changes/vertical/topN-heightA-bottomN-ref.html
  144. 19  layout/reftests/position-dynamic-changes/vertical/topN-heightA-bottomN.html
  145. 15  layout/reftests/position-dynamic-changes/vertical/topN-heightN-bottomA-ref.html
  146. 19  layout/reftests/position-dynamic-changes/vertical/topN-heightN-bottomA.html
  147. 4  layout/reftests/reftest.list
  148. 10  layout/style/nsStyleContext.cpp
  149. 45  layout/style/nsStyleStruct.cpp
153  layout/base/nsCSSFrameConstructor.cpp
@@ -85,8 +85,6 @@
85 85
 #include "mozilla/dom/Element.h"
86 86
 #include "FrameLayerBuilder.h"
87 87
 #include "nsAutoLayoutPhase.h"
88  
-#include "nsCSSRenderingBorders.h"
89  
-#include "nsRenderingContext.h"
90 88
 #include "nsStyleStructInlines.h"
91 89
 
92 90
 #ifdef MOZ_XUL
@@ -8045,7 +8043,6 @@ nsCSSFrameConstructor::ProcessRestyledFrames(nsStyleChangeList& aChangeList)
8045 8043
   while (0 <= --index) {
8046 8044
     nsIFrame* frame;
8047 8045
     nsIContent* content;
8048  
-    bool didReflowThisFrame = false;
8049 8046
     nsChangeHint hint;
8050 8047
     aChangeList.ChangeAt(index, frame, content, hint);
8051 8048
 
@@ -8098,7 +8095,6 @@ nsCSSFrameConstructor::ProcessRestyledFrames(nsStyleChangeList& aChangeList)
8098 8095
       if (hint & nsChangeHint_NeedReflow) {
8099 8096
         StyleChangeReflow(frame, hint);
8100 8097
         didReflow = true;
8101  
-        didReflowThisFrame = true;
8102 8098
       }
8103 8099
       if (hint & (nsChangeHint_RepaintFrame | nsChangeHint_SyncFrameView |
8104 8100
                   nsChangeHint_UpdateOpacityLayer | nsChangeHint_UpdateTransformLayer |
@@ -8106,17 +8102,10 @@ nsCSSFrameConstructor::ProcessRestyledFrames(nsStyleChangeList& aChangeList)
8106 8102
         ApplyRenderingChangeToTree(presContext, frame, hint);
8107 8103
         didInvalidate = true;
8108 8104
       }
8109  
-      if ((hint & nsChangeHint_RecomputePosition) && !didReflowThisFrame) {
8110  
-        // It is possible for this to fall back to a reflow
8111  
-        if (!RecomputePosition(frame)) {
8112  
-          didReflow = true;
8113  
-          didReflowThisFrame = true;
8114  
-        }
8115  
-      }
8116 8105
       NS_ASSERTION(!(hint & nsChangeHint_ChildrenOnlyTransform) ||
8117 8106
                    (hint & nsChangeHint_UpdateOverflow),
8118 8107
                    "nsChangeHint_UpdateOverflow should be passed too");
8119  
-      if ((hint & nsChangeHint_UpdateOverflow) && !didReflowThisFrame) {
  8108
+      if ((hint & nsChangeHint_UpdateOverflow) && !didReflow) {
8120 8109
         if (hint & nsChangeHint_ChildrenOnlyTransform) {
8121 8110
           // When we process restyle events starting from the root of the frame
8122 8111
           // tree, we start at a ViewportFrame and traverse down the tree from
@@ -12420,143 +12409,3 @@ Iterator::DeleteItemsTo(const Iterator& aEnd)
12420 12409
     delete item;
12421 12410
   } while (*this != aEnd);
12422 12411
 }
12423  
-
12424  
-bool
12425  
-nsCSSFrameConstructor::RecomputePosition(nsIFrame* aFrame)
12426  
-{
12427  
-  // Don't process position changes on table frames, since we already handle
12428  
-  // the dynamic position change on the outer table frame, and the reflow-based
12429  
-  // fallback code path also ignores positions on inner table frames.
12430  
-  if (aFrame->GetType() == nsGkAtoms::tableFrame) {
12431  
-    return true;
12432  
-  }
12433  
-
12434  
-  // Don't process position changes on frames which have views or the ones which
12435  
-  // have a view somewhere in their descendants, because the corresponding view
12436  
-  // needs to be repositioned properly as well.
12437  
-  if (aFrame->HasView() ||
12438  
-      (aFrame->GetStateBits() & NS_FRAME_HAS_CHILD_WITH_VIEW)) {
12439  
-    StyleChangeReflow(aFrame, nsChangeHint_NeedReflow);
12440  
-    return false;
12441  
-  }
12442  
-
12443  
-  const nsStyleDisplay* display = aFrame->GetStyleDisplay();
12444  
-  // Changes to the offsets of a non-positioned element can safely be ignored.
12445  
-  if (display->mPosition == NS_STYLE_POSITION_STATIC) {
12446  
-    return true;
12447  
-  }
12448  
-
12449  
-  // For relative positioning, we can simply update the frame rect
12450  
-  if (display->mPosition == NS_STYLE_POSITION_RELATIVE) {
12451  
-    nsIFrame* cb = aFrame->GetContainingBlock();
12452  
-    const nsSize size = cb->GetSize();
12453  
-    const nsPoint oldOffsets = aFrame->GetRelativeOffset();
12454  
-    nsMargin newOffsets;
12455  
-
12456  
-    // Invalidate the old rect
12457  
-    aFrame->InvalidateOverflowRect();
12458  
-
12459  
-    // Move the frame
12460  
-    nsHTMLReflowState::ComputeRelativeOffsets(
12461  
-        cb->GetStyleVisibility()->mDirection,
12462  
-        aFrame, size.width, size.height, newOffsets);
12463  
-    NS_ASSERTION(newOffsets.left == -newOffsets.right &&
12464  
-                 newOffsets.top == -newOffsets.bottom,
12465  
-                 "ComputeRelativeOffsets should return valid results");
12466  
-    aFrame->SetPosition(aFrame->GetPosition() - oldOffsets +
12467  
-                        nsPoint(newOffsets.left, newOffsets.top));
12468  
-
12469  
-    // Invalidate the new rect
12470  
-    aFrame->InvalidateFrameSubtree();
12471  
-
12472  
-    return true;
12473  
-  }
12474  
-
12475  
-  // For absolute positioning, the width can potentially change if width is
12476  
-  // auto and either of left or right are not.  The height can also potentially
12477  
-  // change if height is auto and either of top or bottom are not.  In these
12478  
-  // cases we fall back to a reflow, and in all other cases, we attempt to
12479  
-  // move the frame here.
12480  
-  // Note that it is possible for the dimensions to not change in the above
12481  
-  // cases, so we should be a little smarter here and only fall back to reflow
12482  
-  // when the dimensions will really change (bug 745485).
12483  
-  const nsStylePosition* position = aFrame->GetStylePosition();
12484  
-  if (position->mWidth.GetUnit() != eStyleUnit_Auto &&
12485  
-      position->mHeight.GetUnit() != eStyleUnit_Auto) {
12486  
-    // For the absolute positioning case, set up a fake HTML reflow state for
12487  
-    // the frame, and then get the offsets from it.
12488  
-    nsRefPtr<nsRenderingContext> rc = aFrame->PresContext()->GetPresShell()->
12489  
-      GetReferenceRenderingContext();
12490  
-
12491  
-    // Construct a bogus parent reflow state so that there's a usable
12492  
-    // containing block reflow state.
12493  
-    nsIFrame *parentFrame = aFrame->GetParent();
12494  
-    nsSize parentSize = parentFrame->GetSize();
12495  
-
12496  
-    nsFrameState savedState = parentFrame->GetStateBits();
12497  
-    nsHTMLReflowState parentReflowState(aFrame->PresContext(), parentFrame,
12498  
-                                        rc, parentSize);
12499  
-    parentFrame->RemoveStateBits(~nsFrameState(0));
12500  
-    parentFrame->AddStateBits(savedState);
12501  
-
12502  
-    NS_WARN_IF_FALSE(parentSize.width != NS_INTRINSICSIZE &&
12503  
-                     parentSize.height != NS_INTRINSICSIZE,
12504  
-                     "parentSize should be valid");
12505  
-    parentReflowState.SetComputedWidth(NS_MAX(parentSize.width, 0));
12506  
-    parentReflowState.SetComputedHeight(NS_MAX(parentSize.height, 0));
12507  
-    parentReflowState.mComputedMargin.SizeTo(0, 0, 0, 0);
12508  
-    parentSize.height = NS_AUTOHEIGHT;
12509  
-
12510  
-    parentReflowState.mComputedPadding = parentFrame->GetUsedPadding();
12511  
-    parentReflowState.mComputedBorderPadding =
12512  
-      parentFrame->GetUsedBorderAndPadding();
12513  
-
12514  
-    nsSize availSize(parentSize.width, NS_INTRINSICSIZE);
12515  
-
12516  
-    nsSize size = aFrame->GetSize();
12517  
-    nsSize cbSize = aFrame->GetContainingBlock()->GetSize();
12518  
-    const nsMargin& parentBorder =
12519  
-      parentReflowState.mStyleBorder->GetComputedBorder();
12520  
-    cbSize -= nsSize(parentBorder.LeftRight(), parentBorder.TopBottom());
12521  
-    nsHTMLReflowState reflowState(aFrame->PresContext(), parentReflowState,
12522  
-                                  aFrame, availSize, cbSize.width,
12523  
-                                  cbSize.height);
12524  
-
12525  
-    // If we're solving for 'left' or 'top', then compute it here, in order to
12526  
-    // match the reflow code path.
12527  
-    if (NS_AUTOOFFSET == reflowState.mComputedOffsets.left) {
12528  
-      reflowState.mComputedOffsets.left = cbSize.width -
12529  
-                                          reflowState.mComputedOffsets.right -
12530  
-                                          reflowState.mComputedMargin.right -
12531  
-                                          size.width -
12532  
-                                          reflowState.mComputedMargin.left;
12533  
-    }
12534  
-
12535  
-    if (NS_AUTOOFFSET == reflowState.mComputedOffsets.top) {
12536  
-      reflowState.mComputedOffsets.top = cbSize.height -
12537  
-                                         reflowState.mComputedOffsets.bottom -
12538  
-                                         reflowState.mComputedMargin.bottom -
12539  
-                                         size.height -
12540  
-                                         reflowState.mComputedMargin.top;
12541  
-    }
12542  
-
12543  
-    // Invalidate the old rect
12544  
-    aFrame->InvalidateFrameSubtree();
12545  
-
12546  
-    // Move the frame
12547  
-    nsPoint pos(parentBorder.left + reflowState.mComputedOffsets.left +
12548  
-                reflowState.mComputedMargin.left,
12549  
-                parentBorder.top + reflowState.mComputedOffsets.top +
12550  
-                reflowState.mComputedMargin.top);
12551  
-    aFrame->SetPosition(pos);
12552  
-
12553  
-    // Invalidate the new rect
12554  
-    aFrame->InvalidateFrameSubtree();
12555  
-
12556  
-    return true;
12557  
-  }
12558  
-
12559  
-  // Fall back to a reflow
12560  
-  StyleChangeReflow(aFrame, nsChangeHint_NeedReflow);
12561  
-  return false;
12562  
-}
5  layout/base/nsCSSFrameConstructor.h
@@ -1642,11 +1642,6 @@ class nsCSSFrameConstructor : public nsFrameManager
1642 1642
 
1643 1643
   nsresult StyleChangeReflow(nsIFrame* aFrame, nsChangeHint aHint);
1644 1644
 
1645  
-  // Returns true if this function managed to successfully move a frame, and
1646  
-  // false if it could not process the position change, and a reflow should
1647  
-  // be performed instead.
1648  
-  bool RecomputePosition(nsIFrame* aFrame);
1649  
-
1650 1645
   //----------------------------------------
1651 1646
 
1652 1647
   // Methods support :first-letter style
32  layout/base/nsChangeHint.h
@@ -90,42 +90,12 @@ enum nsChangeHint {
90 90
   nsChangeHint_ChildrenOnlyTransform = 0x1000,
91 91
 
92 92
   /**
93  
-   * The frame's offsets have changed, while its dimensions might have
94  
-   * changed as well.  This hint is used for positioned frames if their
95  
-   * offset changes.  If we decide that the dimensions are likely to
96  
-   * change, this will trigger a reflow.
97  
-   *
98  
-   * Note that this should probably be used in combination with
99  
-   * nsChangeHint_UpdateOverflow in order to get the overflow areas of
100  
-   * the ancestors updated as well.
101  
-   */
102  
-  nsChangeHint_RecomputePosition = 0x2000,
103  
-
104  
-  /**
105 93
    * Behaves like ReconstructFrame, but only if the frame has descendants
106 94
    * that are absolutely or fixed position. Use this hint when a style change
107 95
    * has changed whether the frame is a container for fixed-pos or abs-pos
108 96
    * elements, but reframing is otherwise not needed.
109 97
    */
110  
-  nsChangeHint_AddOrRemoveTransform = 0x4000,
111  
-
112  
-  /**
113  
-   * We have an optimization when processing change hints which prevents
114  
-   * us from visiting the descendants of a node when a hint on that node
115  
-   * is being processed.  This optimization does not apply in some of the
116  
-   * cases where applying a hint to an element does not necessarily result
117  
-   * in the same hint being handled on the descendants.
118  
-   *
119  
-   * If you're adding such a hint, you should add your hint to this list.
120  
-   */
121  
-  nsChangeHint_NonInherited_Hints =
122  
-    nsChangeHint_UpdateTransformLayer |
123  
-    nsChangeHint_UpdateEffects |
124  
-    nsChangeHint_UpdateOpacityLayer |
125  
-    nsChangeHint_UpdateOverflow |
126  
-    nsChangeHint_ChildrenOnlyTransform |
127  
-    nsChangeHint_RecomputePosition |
128  
-    nsChangeHint_AddOrRemoveTransform
  98
+  nsChangeHint_AddOrRemoveTransform = 0x2000
129 99
 };
130 100
 
131 101
 // Redefine these operators to return nothing. This will catch any use
5  layout/base/nsFrameManager.cpp
@@ -1040,7 +1040,10 @@ nsFrameManager::ReResolveStyleContext(nsPresContext     *aPresContext,
1040 1040
   // We need to generate a new change list entry for every frame whose style
1041 1041
   // comparision returns one of these hints. These hints don't automatically
1042 1042
   // update all their descendant frames.
1043  
-  aMinChange = NS_SubtractHint(aMinChange, nsChangeHint_NonInherited_Hints);
  1043
+  aMinChange = NS_SubtractHint(aMinChange, nsChangeHint_UpdateTransformLayer);
  1044
+  aMinChange = NS_SubtractHint(aMinChange, nsChangeHint_UpdateOpacityLayer);
  1045
+  aMinChange = NS_SubtractHint(aMinChange, nsChangeHint_UpdateOverflow);
  1046
+  aMinChange = NS_SubtractHint(aMinChange, nsChangeHint_UpdateEffects);
1044 1047
 
1045 1048
   // It would be nice if we could make stronger assertions here; they
1046 1049
   // would let us simplify the ?: expressions below setting |content|
65  layout/generic/nsHTMLReflowState.cpp
@@ -725,25 +725,23 @@ nsHTMLReflowState::InitFrameType(nsIAtom* aFrameType)
725 725
   mFrameType = frameType;
726 726
 }
727 727
 
728  
-/* static */ void
729  
-nsHTMLReflowState::ComputeRelativeOffsets(uint8_t aCBDirection,
730  
-                                          nsIFrame* aFrame,
  728
+void
  729
+nsHTMLReflowState::ComputeRelativeOffsets(const nsHTMLReflowState* cbrs,
731 730
                                           nscoord aContainingBlockWidth,
732 731
                                           nscoord aContainingBlockHeight,
733  
-                                          nsMargin& aComputedOffsets)
  732
+                                          nsPresContext* aPresContext)
734 733
 {
735  
-  const nsStylePosition* position = aFrame->GetStylePosition();
736  
-
737 734
   // Compute the 'left' and 'right' values. 'Left' moves the boxes to the right,
738 735
   // and 'right' moves the boxes to the left. The computed values are always:
739 736
   // left=-right
740  
-  bool    leftIsAuto = eStyleUnit_Auto == position->mOffset.GetLeftUnit();
741  
-  bool    rightIsAuto = eStyleUnit_Auto == position->mOffset.GetRightUnit();
  737
+  bool    leftIsAuto = eStyleUnit_Auto == mStylePosition->mOffset.GetLeftUnit();
  738
+  bool    rightIsAuto = eStyleUnit_Auto == mStylePosition->mOffset.GetRightUnit();
742 739
 
743 740
   // If neither 'left' not 'right' are auto, then we're over-constrained and
744 741
   // we ignore one of them
745 742
   if (!leftIsAuto && !rightIsAuto) {
746  
-    if (aCBDirection == NS_STYLE_DIRECTION_RTL) {
  743
+    if (mCBReflowState &&
  744
+        NS_STYLE_DIRECTION_RTL == mCBReflowState->mStyleVisibility->mDirection) {
747 745
       leftIsAuto = true;
748 746
     } else {
749 747
       rightIsAuto = true;
@@ -753,42 +751,42 @@ nsHTMLReflowState::ComputeRelativeOffsets(uint8_t aCBDirection,
753 751
   if (leftIsAuto) {
754 752
     if (rightIsAuto) {
755 753
       // If both are 'auto' (their initial values), the computed values are 0
756  
-      aComputedOffsets.left = aComputedOffsets.right = 0;
  754
+      mComputedOffsets.left = mComputedOffsets.right = 0;
757 755
     } else {
758 756
       // 'Right' isn't 'auto' so compute its value
759  
-      aComputedOffsets.right = nsLayoutUtils::
  757
+      mComputedOffsets.right = nsLayoutUtils::
760 758
         ComputeWidthDependentValue(aContainingBlockWidth,
761  
-                                   position->mOffset.GetRight());
  759
+                                   mStylePosition->mOffset.GetRight());
762 760
 
763 761
       // Computed value for 'left' is minus the value of 'right'
764  
-      aComputedOffsets.left = -aComputedOffsets.right;
  762
+      mComputedOffsets.left = -mComputedOffsets.right;
765 763
     }
766 764
 
767 765
   } else {
768 766
     NS_ASSERTION(rightIsAuto, "unexpected specified constraint");
769 767
     
770 768
     // 'Left' isn't 'auto' so compute its value
771  
-    aComputedOffsets.left = nsLayoutUtils::
  769
+    mComputedOffsets.left = nsLayoutUtils::
772 770
       ComputeWidthDependentValue(aContainingBlockWidth,
773  
-                                 position->mOffset.GetLeft());
  771
+                                 mStylePosition->mOffset.GetLeft());
774 772
 
775 773
     // Computed value for 'right' is minus the value of 'left'
776  
-    aComputedOffsets.right = -aComputedOffsets.left;
  774
+    mComputedOffsets.right = -mComputedOffsets.left;
777 775
   }
778 776
 
779 777
   // Compute the 'top' and 'bottom' values. The 'top' and 'bottom' properties
780 778
   // move relatively positioned elements up and down. They also must be each 
781 779
   // other's negative
782  
-  bool    topIsAuto = eStyleUnit_Auto == position->mOffset.GetTopUnit();
783  
-  bool    bottomIsAuto = eStyleUnit_Auto == position->mOffset.GetBottomUnit();
  780
+  bool    topIsAuto = eStyleUnit_Auto == mStylePosition->mOffset.GetTopUnit();
  781
+  bool    bottomIsAuto = eStyleUnit_Auto == mStylePosition->mOffset.GetBottomUnit();
784 782
 
785 783
   // Check for percentage based values and a containing block height that
786 784
   // depends on the content height. Treat them like 'auto'
787 785
   if (NS_AUTOHEIGHT == aContainingBlockHeight) {
788  
-    if (position->OffsetHasPercent(NS_SIDE_TOP)) {
  786
+    if (mStylePosition->OffsetHasPercent(NS_SIDE_TOP)) {
789 787
       topIsAuto = true;
790 788
     }
791  
-    if (position->OffsetHasPercent(NS_SIDE_BOTTOM)) {
  789
+    if (mStylePosition->OffsetHasPercent(NS_SIDE_BOTTOM)) {
792 790
       bottomIsAuto = true;
793 791
     }
794 792
   }
@@ -801,38 +799,38 @@ nsHTMLReflowState::ComputeRelativeOffsets(uint8_t aCBDirection,
801 799
   if (topIsAuto) {
802 800
     if (bottomIsAuto) {
803 801
       // If both are 'auto' (their initial values), the computed values are 0
804  
-      aComputedOffsets.top = aComputedOffsets.bottom = 0;
  802
+      mComputedOffsets.top = mComputedOffsets.bottom = 0;
805 803
     } else {
806 804
       // 'Bottom' isn't 'auto' so compute its value
807  
-      aComputedOffsets.bottom = nsLayoutUtils::
  805
+      mComputedOffsets.bottom = nsLayoutUtils::
808 806
         ComputeHeightDependentValue(aContainingBlockHeight,
809  
-                                    position->mOffset.GetBottom());
  807
+                                    mStylePosition->mOffset.GetBottom());
810 808
       
811 809
       // Computed value for 'top' is minus the value of 'bottom'
812  
-      aComputedOffsets.top = -aComputedOffsets.bottom;
  810
+      mComputedOffsets.top = -mComputedOffsets.bottom;
813 811
     }
814 812
 
815 813
   } else {
816 814
     NS_ASSERTION(bottomIsAuto, "unexpected specified constraint");
817 815
     
818 816
     // 'Top' isn't 'auto' so compute its value
819  
-    aComputedOffsets.top = nsLayoutUtils::
  817
+    mComputedOffsets.top = nsLayoutUtils::
820 818
       ComputeHeightDependentValue(aContainingBlockHeight,
821  
-                                  position->mOffset.GetTop());
  819
+                                  mStylePosition->mOffset.GetTop());
822 820
 
823 821
     // Computed value for 'bottom' is minus the value of 'top'
824  
-    aComputedOffsets.bottom = -aComputedOffsets.top;
  822
+    mComputedOffsets.bottom = -mComputedOffsets.top;
825 823
   }
826 824
 
827 825
   // Store the offset
828  
-  FrameProperties props = aFrame->Properties();
  826
+  FrameProperties props(aPresContext->PropertyTable(), frame);
829 827
   nsPoint* offsets = static_cast<nsPoint*>
830 828
     (props.Get(nsIFrame::ComputedOffsetProperty()));
831 829
   if (offsets) {
832  
-    offsets->MoveTo(aComputedOffsets.left, aComputedOffsets.top);
  830
+    offsets->MoveTo(mComputedOffsets.left, mComputedOffsets.top);
833 831
   } else {
834 832
     props.Set(nsIFrame::ComputedOffsetProperty(),
835  
-              new nsPoint(aComputedOffsets.left, aComputedOffsets.top));
  833
+              new nsPoint(mComputedOffsets.left, mComputedOffsets.top));
836 834
   }
837 835
 }
838 836
 
@@ -1916,12 +1914,7 @@ nsHTMLReflowState::InitConstraints(nsPresContext* aPresContext,
1916 1914
     // the correct containing block width and height here, which is why we need
1917 1915
     // to do it after all the quirks-n-such above.
1918 1916
     if (mStyleDisplay->IsRelativelyPositioned(frame)) {
1919  
-      uint8_t direction = NS_STYLE_DIRECTION_LTR;
1920  
-      if (cbrs && NS_STYLE_DIRECTION_RTL == cbrs->mStyleVisibility->mDirection) {
1921  
-        direction = NS_STYLE_DIRECTION_RTL;
1922  
-      }
1923  
-      ComputeRelativeOffsets(direction, frame, aContainingBlockWidth,
1924  
-          aContainingBlockHeight, mComputedOffsets);
  1917
+      ComputeRelativeOffsets(cbrs, aContainingBlockWidth, aContainingBlockHeight, aPresContext);
1925 1918
     } else {
1926 1919
       // Initialize offsets to 0
1927 1920
       mComputedOffsets.SizeTo(0, 0, 0, 0);
12  layout/generic/nsHTMLReflowState.h
@@ -481,13 +481,6 @@ struct nsHTMLReflowState : public nsCSSOffsetState {
481 481
     return mDiscoveredClearance && *mDiscoveredClearance;
482 482
   }
483 483
 
484  
-  // Compute the offsets for a relative position element
485  
-  static void ComputeRelativeOffsets(uint8_t aCBDirection,
486  
-                                     nsIFrame* aFrame,
487  
-                                     nscoord aContainingBlockWidth,
488  
-                                     nscoord aContainingBlockHeight,
489  
-                                     nsMargin& aComputedOffsets);
490  
-
491 484
 #ifdef DEBUG
492 485
   // Reflow trace methods.  Defined in nsFrame.cpp so they have access
493 486
   // to the display-reflow infrastructure.
@@ -542,6 +535,11 @@ struct nsHTMLReflowState : public nsCSSOffsetState {
542 535
                                nscoord aContainingBlockHeight,
543 536
                                nsIAtom* aFrameType);
544 537
 
  538
+  void ComputeRelativeOffsets(const nsHTMLReflowState* cbrs,
  539
+                              nscoord aContainingBlockWidth,
  540
+                              nscoord aContainingBlockHeight,
  541
+                              nsPresContext* aPresContext);
  542
+
545 543
   // Calculates the computed values for the 'min-Width', 'max-Width',
546 544
   // 'min-Height', and 'max-Height' properties, and stores them in the assorted
547 545
   // data members
10  layout/reftests/position-dynamic-changes/handleprop.js
... ...
@@ -1,10 +0,0 @@
1  
-// Add the correct border/margin/padding style
2  
-if (window.location.search.length > 0) {
3  
-  var params = window.location.search.substr(1).split("_");
4  
-  if (params[0] == "border") {
5  
-    params[0] = "border-width";
6  
-  }
7  
-  document.write("<style>");
8  
-  document.write((params[1] == "parent") ? "#parent" : "#child");
9  
-  document.write("{ " + params[0] + ": 1px 2px 3px 4px; }</style>");
10  
-}
62  layout/reftests/position-dynamic-changes/horizontal/animate.js
... ...
@@ -1,62 +0,0 @@
1  
-var currentOffset = null;
2  
-var maxOffset = null;
3  
-var property = "left";
4  
-
5  
-var rfa = null;
6  
-if (window.requestAnimationFrame) {
7  
-  rfa = requestAnimationFrame;
8  
-} else if (window.mozRequestAnimationFrame) {
9  
-  rfa = mozRequestAnimationFrame;
10  
-} else if (window.webkitRequestAnimationFrame) {
11  
-  rfa = webkitRequestAnimationFrame;
12  
-} else if (window.msRequestAnimationFrame) {
13  
-  rfa = msRequestAnimationFrame;
14  
-} else if (window.oRequestAnimationFrame) {
15  
-  rfa = oRequestAnimationFrame;
16  
-}
17  
-
18  
-function animate(from, to, prop) {
19  
-  currentOffset = from;
20  
-  maxOffset = to;
21  
-  if (prop) {
22  
-    property = prop;
23  
-  }
24  
-  rfa(animateStep);
25  
-}
26  
-
27  
-function animateStep() {
28  
-  if (currentOffset <= maxOffset) {
29  
-    document.getElementById("child").style[property] = currentOffset + "px";
30  
-    currentOffset += 10;
31  
-    rfa(animateStep);
32  
-  } else {
33  
-    document.documentElement.removeAttribute("class");
34  
-  }
35  
-}
36  
-
37  
-function toAuto(prop) {
38  
-  if (prop) {
39  
-    property = prop;
40  
-  }
41  
-  rfa(setToAuto);
42  
-}
43  
-
44  
-function setToAuto() {
45  
-  document.getElementById("child").style[property] = "auto";
46  
-  document.documentElement.removeAttribute("class");
47  
-}
48  
-
49  
-function fromAuto(to, prop) {
50  
-  maxOffset = to;
51  
-  if (prop) {
52  
-    property = prop;
53  
-  }
54  
-  rfa(setFromAuto);
55  
-}
56  
-
57  
-function setFromAuto() {
58  
-  document.getElementById("child").style[property] = maxOffset + "px";
59  
-  document.documentElement.removeAttribute("class");
60  
-}
61  
-
62  
-
19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftA-widthA-rightN.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      fromAuto(200, "right");
17  
-    </script>
18  
-  </body>
19  
-</html>
19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftA-widthN-rightA.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      fromAuto(200, "width");
17  
-    </script>
18  
-  </body>
19  
-</html>
19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftA-widthN-rightN.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child" style="width: 100px;">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      fromAuto(200, "right");
17  
-    </script>
18  
-  </body>
19  
-</html>
19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftN-widthA-rightA-2.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      fromAuto(360);
17  
-    </script>
18  
-  </body>
19  
-</html>
19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftN-widthA-rightA.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      fromAuto(200);
17  
-    </script>
18  
-  </body>
19  
-</html>
19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftN-widthA-rightN-2.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child" style="right: 20px;">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      fromAuto(340);
17  
-    </script>
18  
-  </body>
19  
-</html>
19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftN-widthA-rightN.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child" style="right: 20px;">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      fromAuto(200);
17  
-    </script>
18  
-  </body>
19  
-</html>
19  layout/reftests/position-dynamic-changes/horizontal/fromauto-leftN-widthN-rightA.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child" style="width: 100px;">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      fromAuto(200);
17  
-    </script>
18  
-  </body>
19  
-</html>
15  layout/reftests/position-dynamic-changes/horizontal/leftA-widthA-rightN-ref.html
... ...
@@ -1,15 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html>
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="../handleprop.js" type="text/javascript"></script>
6  
-  </head>
7  
-  <body>
8  
-    <div id="parent">
9  
-      <div id="child" style="right: 200px;">
10  
-        <div class="floatLeft"></div>
11  
-        <div class="floatLeft"></div>
12  
-      </div>
13  
-    </div>
14  
-  </body>
15  
-</html>
19  layout/reftests/position-dynamic-changes/horizontal/leftA-widthA-rightN.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child" style="right: 100px;">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      animate(100, 200, "right");
17  
-    </script>
18  
-  </body>
19  
-</html>
15  layout/reftests/position-dynamic-changes/horizontal/leftA-widthN-rightA-ref.html
... ...
@@ -1,15 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html>
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="../handleprop.js" type="text/javascript"></script>
6  
-  </head>
7  
-  <body>
8  
-    <div id="parent">
9  
-      <div id="child" style="width: 200px;">
10  
-        <div class="floatLeft"></div>
11  
-        <div class="floatLeft"></div>
12  
-      </div>
13  
-    </div>
14  
-  </body>
15  
-</html>
19  layout/reftests/position-dynamic-changes/horizontal/leftA-widthN-rightA.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child" style="width: 100px;">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      animate(100, 200, "width");
17  
-    </script>
18  
-  </body>
19  
-</html>
15  layout/reftests/position-dynamic-changes/horizontal/leftA-widthN-rightN-ref.html
... ...
@@ -1,15 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html>
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="../handleprop.js" type="text/javascript"></script>
6  
-  </head>
7  
-  <body>
8  
-    <div id="parent">
9  
-      <div id="child" style="width: 100px; right: 200px;">
10  
-        <div class="floatLeft"></div>
11  
-        <div class="floatLeft"></div>
12  
-      </div>
13  
-    </div>
14  
-  </body>
15  
-</html>
19  layout/reftests/position-dynamic-changes/horizontal/leftA-widthN-rightN.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child" style="width: 100px; right: 100px;">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      animate(100, 200, "right");
17  
-    </script>
18  
-  </body>
19  
-</html>
15  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightA-2-ref.html
... ...
@@ -1,15 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html>
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="../handleprop.js" type="text/javascript"></script>
6  
-  </head>
7  
-  <body>
8  
-    <div id="parent">
9  
-      <div id="child" style="left: 360px;">
10  
-        <div class="floatLeft"></div>
11  
-        <div class="floatLeft"></div>
12  
-      </div>
13  
-    </div>
14  
-  </body>
15  
-</html>
19  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightA-2.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child" style="left: 200px;">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      animate(200, 360);
17  
-    </script>
18  
-  </body>
19  
-</html>
15  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightA-ref.html
... ...
@@ -1,15 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html>
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="../handleprop.js" type="text/javascript"></script>
6  
-  </head>
7  
-  <body>
8  
-    <div id="parent">
9  
-      <div id="child" style="left: 200px;">
10  
-        <div class="floatLeft"></div>
11  
-        <div class="floatLeft"></div>
12  
-      </div>
13  
-    </div>
14  
-  </body>
15  
-</html>
19  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightA.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child" style="left: 100px;">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      animate(100, 200);
17  
-    </script>
18  
-  </body>
19  
-</html>
15  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightN-2-ref.html
... ...
@@ -1,15 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html>
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="../handleprop.js" type="text/javascript"></script>
6  
-  </head>
7  
-  <body>
8  
-    <div id="parent">
9  
-      <div id="child" style="left: 340px; right: 20px;">
10  
-        <div class="floatLeft"></div>
11  
-        <div class="floatLeft"></div>
12  
-      </div>
13  
-    </div>
14  
-  </body>
15  
-</html>
19  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightN-2.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child" style="left: 100px; right: 20px;">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      animate(100, 340);
17  
-    </script>
18  
-  </body>
19  
-</html>
15  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightN-ref.html
... ...
@@ -1,15 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html>
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="../handleprop.js" type="text/javascript"></script>
6  
-  </head>
7  
-  <body>
8  
-    <div id="parent">
9  
-      <div id="child" style="left: 200px; right: 20px;">
10  
-        <div class="floatLeft"></div>
11  
-        <div class="floatLeft"></div>
12  
-      </div>
13  
-    </div>
14  
-  </body>
15  
-</html>
19  layout/reftests/position-dynamic-changes/horizontal/leftN-widthA-rightN.html
... ...
@@ -1,19 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html class="reftest-wait">
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5  
-    <script src="animate.js" type="text/javascript"></script>
6  
-    <script src="../handleprop.js" type="text/javascript"></script>
7  
-  </head>
8  
-  <body>
9  
-    <div id="parent">
10  
-      <div id="child" style="left: 100px; right: 20px;">
11  
-        <div class="floatLeft"></div>
12  
-        <div class="floatLeft"></div>
13  
-      </div>
14  
-    </div>
15  
-    <script>
16  
-      animate(100, 200);
17  
-    </script>
18  
-  </body>
19  
-</html>
15  layout/reftests/position-dynamic-changes/horizontal/leftN-widthN-rightA-ref.html
... ...
@@ -1,15 +0,0 @@
1  
-<!DOCTYPE html>
2  
-<html>
3  
-  <head>
4  
-    <link rel="stylesheet" type="text/css" href="style.css">
5