import change from rmottola/Arctic-Fox:

- Bug 1138527 part 1 - Make ruby annotations have the same font inflation as its containing ruby frame. (088bbf5bc)
- Bug 1138527 part 2 - Reftest for application of font inflation to ruby. (41ae8c811)
- Bug 1097468 - Part1: expose |homescreen-webapps-manage| in Apps.webidl (b182f49b7)
- Bug 1097468 - Part 2: test for permission |homescreen-webapps-manage|. (1b097c139)
- Bug 943537 - In the GeckoContentController interface, take the modifiers for tap events in 'widget modifier' format rather than 'DOM modifier' format (4b7de6b31)
- Bug 943537 - Handle modifiers on tap events in RemoteContentController and ChromeProcessController. (2bbe91961)
- Bug 1130455 - Remove the ScrollingBehavior code to propagate APZ and use gfxPrefs instead. (09a0c8e61)
- Bug 1139258 - Use ScreenIntSize in PBrowser::Show/UpdateDimensions (2189f8921)
- Bug 1139575 - Don't set the fast motion flag on multitouch blocks. (5155bfd13)
- Bug 1137267 - Enable event-regions automatically when APZ is enabled, and allow the APZ code to assume event-regions are enabled always. (29d7e7d1c)
- Bug 1137267 - Remove unneeded flags to track touch listeners and touch caret. (cb6cc1139)
- Bug 1036967 - Use ScaleFactors2D instead of ScaleFactor where appropriate in APZ and surrounding code. (09ce986a9)
- Bug 1036967 - Remove ScaleFactor::ScaleFactor(float, float). (87d13024c)
- Bug 1036967 - Followup to fix debug logging. (d01fca6e4)
- Bug 1036967 - Follow-up to fix debug logging. (776b4b65e)
- Bug 1149060. Fix dev pixels per CSS pixel and presshell resolution layer dumping after bug 1036967. (6d26e4d3c)
- Bug 1130982 - Reftest for this bug. (00bff9489)
-  Bug 1130982 - Ensure the clip rect is appropriately adjusted for multi-framemetrics layers. (211d15a4d)
-  Bug 1130982 - Fix a reftest so an element that's supposed to be scrollable actually is. (71dc992e2)
- Bug 1130982 - With multi-FrameMetrics on APZ platforms, do not apply clips to scroll ports of frames other than the bottom-most one on the layout side. (4d9342324)
- Fix APZ using incorrect scroll wheel deltas. (bug 1141728) (cad854639)
- Bug 1139675 - Update JS callers of nsIDOMWindowUtils.setResolution and getResolution in accessibility code. (28dffc78d)
- Bug 1136914 - Don't lose scale from parent document when descending into subdocument. (0d3cef358)
- Bug 1139283 - Move some properties from nsStyleDisplay to nsStylePosition. (ff61201ae)
- Bug 1125767. Centralize code into nsStylePosition::IsFixedPosContainingBlock. (f256191f4)
- temporary override -> MOZ_OVERRIDE again (ed8caa82d)
- Bug 1139675 - Add a couple of operator overloads to BaseSize. (a214c0eab)
- Bug 927995 - Handle antialias+preserveDrawingBuffer properly. (9ceaf6d0a)
- Bug 1142926 - Only notify the docshell of state changes when moving in and out of a transforming state across all APZCs. (153054d1e)
- Bug 1116806: Enable dom.ipc.plugins.asyncInit by default; (bf0e3464d)
- Bug 1143789. Remove unnecessary cast to BasicLayerManager. (fd30ade6c)
This commit is contained in:
2019-06-07 10:52:20 +08:00
parent e96afb6ea5
commit 1cf10c95c9
98 changed files with 1548 additions and 1508 deletions
+16 -18
View File
@@ -752,8 +752,8 @@ public:
// using this state.
nsFrameState mAdditionalStateBits;
// When working with the -moz-transform property, we want to hook
// the abs-pos and fixed-pos lists together, since transformed
// When working with the transform and filter properties, we want to hook
// the abs-pos and fixed-pos lists together, since such
// elements are fixed-pos containing blocks. This flag determines
// whether or not we want to wire the fixed-pos and abs-pos lists
// together.
@@ -1063,8 +1063,7 @@ nsFrameConstructorState::PushAbsoluteContainingBlock(nsContainerFrame* aNewAbsol
* we're a transformed element.
*/
mFixedPosIsAbsPos = aPositionedFrame &&
(aPositionedFrame->StyleDisplay()->HasTransform(aPositionedFrame) ||
aPositionedFrame->StyleDisplay()->HasPerspectiveStyle());
aPositionedFrame->StylePosition()->IsFixedPosContainingBlock(aPositionedFrame);
if (aNewAbsoluteContainingBlock) {
aNewAbsoluteContainingBlock->MarkAsAbsoluteContainingBlock();
@@ -2037,7 +2036,7 @@ nsCSSFrameConstructor::ConstructTable(nsFrameConstructorState& aState,
// Mark the table frame as an absolute container if needed
newFrame->AddStateBits(NS_FRAME_CAN_HAVE_ABSPOS_CHILDREN);
if (display->IsPositioned(newFrame)) {
if (display->IsAbsPosContainingBlock(newFrame)) {
aState.PushAbsoluteContainingBlock(newFrame, newFrame, absoluteSaveState);
}
NS_ASSERTION(aItem.mAnonChildren.IsEmpty(),
@@ -2080,7 +2079,7 @@ MakeTablePartAbsoluteContainingBlockIfNeeded(nsFrameConstructorState& aState
// However, in this case flag serves the additional purpose of indicating that
// the frame was registered with its table frame. This allows us to avoid the
// overhead of unregistering the frame in most cases.
if (aDisplay->IsPositioned(aFrame)) {
if (aDisplay->IsAbsPosContainingBlock(aFrame)) {
aFrame->AddStateBits(NS_FRAME_CAN_HAVE_ABSPOS_CHILDREN);
aState.PushAbsoluteContainingBlock(aFrame, aFrame, aAbsSaveState);
nsTableFrame::RegisterPositionedTablePart(aFrame);
@@ -2622,7 +2621,7 @@ nsCSSFrameConstructor::ConstructDocElementFrame(Element* aDocEle
mDocElementContainingBlock),
mDocElementContainingBlock, styleContext,
&contentFrame, frameItems,
display->IsPositioned(contentFrame) ? contentFrame : nullptr,
display->IsAbsPosContainingBlock(contentFrame) ? contentFrame : nullptr,
nullptr);
newFrame = frameItems.FirstChild();
NS_ASSERTION(frameItems.OnlyChild(), "multiple root element frames");
@@ -3107,7 +3106,7 @@ nsCSSFrameConstructor::ConstructSelectFrame(nsFrameConstructorState& aState,
// Notify combobox that it should use the listbox as it's popup
comboBox->SetDropDown(listFrame);
NS_ASSERTION(!listFrame->IsPositioned(),
NS_ASSERTION(!listFrame->IsAbsPosContaininingBlock(),
"Ended up with positioned dropdown list somehow.");
NS_ASSERTION(!listFrame->IsFloating(),
"Ended up with floating dropdown list somehow.");
@@ -3262,7 +3261,7 @@ nsCSSFrameConstructor::ConstructFieldSetFrame(nsFrameConstructorState& aState,
nsFrameItems childItems;
blockFrame->AddStateBits(NS_FRAME_CAN_HAVE_ABSPOS_CHILDREN);
if (fieldsetFrame->IsPositioned()) {
if (fieldsetFrame->IsAbsPosContaininingBlock()) {
aState.PushAbsoluteContainingBlock(blockFrame, fieldsetFrame, absoluteSaveState);
}
@@ -3824,7 +3823,9 @@ nsCSSFrameConstructor::ConstructFrameFromItemInternal(FrameConstructionItem& aIt
// If we need to create a block formatting context to wrap our
// kids, do it now.
const nsStylePosition* position = styleContext->StylePosition();
const nsStyleDisplay* maybeAbsoluteContainingBlockDisplay = display;
const nsStylePosition* maybeAbsoluteContainingBlockPosition = position;
nsIFrame* maybeAbsoluteContainingBlock = newFrame;
nsIFrame* possiblyLeafFrame = newFrame;
if (bits & FCDATA_CREATE_BLOCK_WRAPPER_FOR_ALL_KIDS) {
@@ -3891,7 +3892,7 @@ nsCSSFrameConstructor::ConstructFrameFromItemInternal(FrameConstructionItem& aIt
// Now figure out whether newFrame or outerFrame should be the
// absolute container.
auto outerDisplay = outerSC->StyleDisplay();
if (outerDisplay->IsPositioned(outerFrame)) {
if (outerDisplay->IsAbsPosContainingBlock(outerFrame)) {
maybeAbsoluteContainingBlockDisplay = outerDisplay;
maybeAbsoluteContainingBlock = outerFrame;
innerFrame->AddStateBits(NS_FRAME_CAN_HAVE_ABSPOS_CHILDREN);
@@ -3934,9 +3935,7 @@ nsCSSFrameConstructor::ConstructFrameFromItemInternal(FrameConstructionItem& aIt
// make the inner the containing block.
if ((maybeAbsoluteContainingBlockDisplay->IsAbsolutelyPositionedStyle() ||
maybeAbsoluteContainingBlockDisplay->IsRelativelyPositionedStyle() ||
(maybeAbsoluteContainingBlockDisplay->HasTransformStyle() &&
cb->IsFrameOfType(nsIFrame::eSupportsCSSTransforms)) ||
maybeAbsoluteContainingBlockDisplay->HasPerspectiveStyle()) &&
maybeAbsoluteContainingBlockPosition->IsFixedPosContainingBlock(cb)) &&
!cb->IsSVGText()) {
nsContainerFrame* cf = static_cast<nsContainerFrame*>(cb);
aState.PushAbsoluteContainingBlock(cf, cf, absoluteSaveState);
@@ -4790,7 +4789,7 @@ nsCSSFrameConstructor::ConstructScrollableBlockWithConstructor(
ConstructBlock(aState, scrolledContentStyle->StyleDisplay(), content,
newFrame, newFrame, scrolledContentStyle,
&scrolledFrame, blockItem,
aDisplay->IsPositioned(newFrame) ? newFrame : nullptr,
aDisplay->IsAbsPosContainingBlock(newFrame) ? newFrame : nullptr,
aItem.mPendingBinding);
MOZ_ASSERT(blockItem.OnlyChild() == scrolledFrame,
@@ -4847,7 +4846,7 @@ nsCSSFrameConstructor::ConstructNonScrollableBlockWithConstructor(
aState.GetGeometricParent(aDisplay, aParentFrame),
aParentFrame, styleContext, &newFrame,
aFrameItems,
aDisplay->IsPositioned(newFrame) ? newFrame : nullptr,
aDisplay->IsAbsPosContainingBlock(newFrame) ? newFrame : nullptr,
aItem.mPendingBinding);
return newFrame;
}
@@ -6108,10 +6107,9 @@ nsCSSFrameConstructor::GetAbsoluteContainingBlock(nsIFrame* aFrame,
// the correct containing block (the scrolledframe) in that case.
// If we're looking for a fixed-pos containing block and the frame is
// not transformed, skip it.
if (!frame->IsPositioned() ||
if (!frame->IsAbsPosContaininingBlock() ||
(aType == FIXED_POS &&
!frame->StyleDisplay()->HasTransform(frame) &&
!frame->StyleDisplay()->HasPerspectiveStyle())) {
!frame->StylePosition()->IsFixedPosContainingBlock(frame))) {
continue;
}
nsIFrame* absPosCBCandidate = frame;