author | Timothy Nikkel <tnikkel@gmail.com> |
Wed, 26 Mar 2014 21:46:24 -0400 | |
changeset 175591 | 4a75c46797d127d92ae8bbe0293d7219239c03a6 |
parent 175590 | 8b0da7b8afc61140412d00ffa14c98c5f502f5c7 |
child 175592 | f9aee922c83bc59d1856c615f1575074cb162233 |
push id | 26494 |
push user | cbook@mozilla.com |
push date | Thu, 27 Mar 2014 13:09:48 +0000 |
treeherder | mozilla-central@d2ecc6d31622 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | kats |
bugs | 957668 |
milestone | 31.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp @@ -375,21 +375,16 @@ nsDOMWindowUtils::SetDisplayPortForEleme return NS_ERROR_DOM_SECURITY_ERR; } nsIPresShell* presShell = GetPresShell(); if (!presShell) { return NS_ERROR_FAILURE; } - nsRect displayport(nsPresContext::CSSPixelsToAppUnits(aXPx), - nsPresContext::CSSPixelsToAppUnits(aYPx), - nsPresContext::CSSPixelsToAppUnits(aWidthPx), - nsPresContext::CSSPixelsToAppUnits(aHeightPx)); - if (!aElement) { return NS_ERROR_INVALID_ARG; } nsCOMPtr<nsIContent> content = do_QueryInterface(aElement); if (!content) { return NS_ERROR_INVALID_ARG; @@ -400,35 +395,38 @@ nsDOMWindowUtils::SetDisplayPortForEleme } DisplayPortPropertyData* currentData = static_cast<DisplayPortPropertyData*>(content->GetProperty(nsGkAtoms::DisplayPort)); if (currentData && currentData->mPriority > aPriority) { return NS_OK; } + nsRect displayport(nsPresContext::CSSPixelsToAppUnits(aXPx), + nsPresContext::CSSPixelsToAppUnits(aYPx), + nsPresContext::CSSPixelsToAppUnits(aWidthPx), + nsPresContext::CSSPixelsToAppUnits(aHeightPx)); + content->SetProperty(nsGkAtoms::DisplayPort, new DisplayPortPropertyData(displayport, aPriority), nsINode::DeleteProperty<DisplayPortPropertyData>); nsIFrame* rootScrollFrame = presShell->GetRootScrollFrame(); - if (rootScrollFrame) { - if (content == rootScrollFrame->GetContent()) { - // We are setting a root displayport for a document. - // The pres shell needs a special flag set. - presShell->SetIgnoreViewportScrolling(true); - - // When the "font.size.inflation.minTwips" preference is set, the - // layout depends on the size of the screen. Since when the size - // of the screen changes, the root displayport also changes, we - // hook in the needed updates here rather than adding a - // separate notification just for this change. - nsPresContext* presContext = GetPresContext(); - MaybeReflowForInflationScreenWidthChange(presContext); - } + if (rootScrollFrame && content == rootScrollFrame->GetContent()) { + // We are setting a root displayport for a document. + // The pres shell needs a special flag set. + presShell->SetIgnoreViewportScrolling(true); + + // When the "font.size.inflation.minTwips" preference is set, the + // layout depends on the size of the screen. Since when the size + // of the screen changes, the root displayport also changes, we + // hook in the needed updates here rather than adding a + // separate notification just for this change. + nsPresContext* presContext = GetPresContext(); + MaybeReflowForInflationScreenWidthChange(presContext); } nsIFrame* rootFrame = presShell->FrameManager()->GetRootFrame(); if (rootFrame) { rootFrame->SchedulePaint(); // If we are hiding something that is a display root then send empty paint // transaction in order to release retained layers because it won't get @@ -465,23 +463,16 @@ nsDOMWindowUtils::SetDisplayPortMarginsF return NS_ERROR_DOM_SECURITY_ERR; } nsIPresShell* presShell = GetPresShell(); if (!presShell) { return NS_ERROR_FAILURE; } - // Note order change of arguments between our function signature and - // LayerMargin constructor. - LayerMargin displayportMargins(aTopMargin, - aRightMargin, - aBottomMargin, - aLeftMargin); - if (!aElement) { return NS_ERROR_INVALID_ARG; } nsCOMPtr<nsIContent> content = do_QueryInterface(aElement); if (!content) { return NS_ERROR_INVALID_ARG; @@ -492,27 +483,32 @@ nsDOMWindowUtils::SetDisplayPortMarginsF } DisplayPortMarginsPropertyData* currentData = static_cast<DisplayPortMarginsPropertyData*>(content->GetProperty(nsGkAtoms::DisplayPortMargins)); if (currentData && currentData->mPriority > aPriority) { return NS_OK; } + // Note order change of arguments between our function signature and + // LayerMargin constructor. + LayerMargin displayportMargins(aTopMargin, + aRightMargin, + aBottomMargin, + aLeftMargin); + content->SetProperty(nsGkAtoms::DisplayPortMargins, new DisplayPortMarginsPropertyData(displayportMargins, aAlignment, aPriority), nsINode::DeleteProperty<DisplayPortMarginsPropertyData>); nsIFrame* rootScrollFrame = presShell->GetRootScrollFrame(); - if (rootScrollFrame) { - if (content == rootScrollFrame->GetContent()) { - // We are setting a root displayport for a document. - // The pres shell needs a special flag set. - presShell->SetIgnoreViewportScrolling(true); - } + if (rootScrollFrame && content == rootScrollFrame->GetContent()) { + // We are setting a root displayport for a document. + // The pres shell needs a special flag set. + presShell->SetIgnoreViewportScrolling(true); } nsIFrame* rootFrame = presShell->FrameManager()->GetRootFrame(); if (rootFrame) { rootFrame->SchedulePaint(); } return NS_OK;