author | Botond Ballo <botond@mozilla.com> |
Mon, 08 Jun 2015 16:01:26 -0400 | |
changeset 248198 | d3ad5a9e8cfe38d22599e95bd908b7431406acd9 |
parent 248197 | 30e375742c0ad3be7aa7dc28bd8ae8818b0f6679 |
child 248199 | a77e4d67f645782cdc394460796640539b15dbf0 |
push id | 28893 |
push user | kwierso@gmail.com |
push date | Fri, 12 Jun 2015 00:02:58 +0000 |
treeherder | autoland@8cf9d3e497f9 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | kats |
bugs | 1158424 |
milestone | 41.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/ipc/TabChild.cpp +++ b/dom/ipc/TabChild.cpp @@ -540,17 +540,17 @@ TabChildBase::DispatchMessageManagerMess aMessageName, false, &cloneData, nullptr, nullptr, nullptr); } bool TabChildBase::UpdateFrameHandler(const FrameMetrics& aFrameMetrics) { MOZ_ASSERT(aFrameMetrics.GetScrollId() != FrameMetrics::NULL_SCROLL_ID); - if (aFrameMetrics.GetIsRoot()) { + if (aFrameMetrics.IsRootContent()) { if (nsCOMPtr<nsIPresShell> shell = GetPresShell()) { // Guard against stale updates (updates meant for a pres shell which // has since been torn down and destroyed). if (aFrameMetrics.GetPresShellId() == shell->GetPresShellId()) { mLastRootMetrics = ProcessUpdateFrame(aFrameMetrics); return true; } }
--- a/gfx/ipc/GfxMessageUtils.h +++ b/gfx/ipc/GfxMessageUtils.h @@ -716,17 +716,17 @@ struct ParamTraits<mozilla::layers::Fram WriteParam(aMsg, aParam.mRootCompositionSize); WriteParam(aMsg, aParam.mScrollId); WriteParam(aMsg, aParam.mScrollParentId); WriteParam(aMsg, aParam.mPresShellResolution); WriteParam(aMsg, aParam.mCumulativeResolution); WriteParam(aMsg, aParam.mZoom); WriteParam(aMsg, aParam.mDevPixelsPerCSSPixel); WriteParam(aMsg, aParam.mPresShellId); - WriteParam(aMsg, aParam.mIsRoot); + WriteParam(aMsg, aParam.mIsRootContent); WriteParam(aMsg, aParam.mHasScrollgrab); WriteParam(aMsg, aParam.mUpdateScrollOffset); WriteParam(aMsg, aParam.mScrollGeneration); WriteParam(aMsg, aParam.mExtraResolution); WriteParam(aMsg, aParam.mBackgroundColor); WriteParam(aMsg, aParam.mDoSmoothScroll); WriteParam(aMsg, aParam.mSmoothScrollOffset); WriteParam(aMsg, aParam.GetLineScrollAmount()); @@ -761,17 +761,17 @@ struct ParamTraits<mozilla::layers::Fram ReadParam(aMsg, aIter, &aResult->mRootCompositionSize) && ReadParam(aMsg, aIter, &aResult->mScrollId) && ReadParam(aMsg, aIter, &aResult->mScrollParentId) && ReadParam(aMsg, aIter, &aResult->mPresShellResolution) && ReadParam(aMsg, aIter, &aResult->mCumulativeResolution) && ReadParam(aMsg, aIter, &aResult->mZoom) && ReadParam(aMsg, aIter, &aResult->mDevPixelsPerCSSPixel) && ReadParam(aMsg, aIter, &aResult->mPresShellId) && - ReadParam(aMsg, aIter, &aResult->mIsRoot) && + ReadParam(aMsg, aIter, &aResult->mIsRootContent) && ReadParam(aMsg, aIter, &aResult->mHasScrollgrab) && ReadParam(aMsg, aIter, &aResult->mUpdateScrollOffset) && ReadParam(aMsg, aIter, &aResult->mScrollGeneration) && ReadParam(aMsg, aIter, &aResult->mExtraResolution) && ReadParam(aMsg, aIter, &aResult->mBackgroundColor) && ReadParam(aMsg, aIter, &aResult->mDoSmoothScroll) && ReadParam(aMsg, aIter, &aResult->mSmoothScrollOffset) && ReadParam(aMsg, aIter, &aResult->mLineScrollAmount) &&
--- a/gfx/layers/FrameMetrics.h +++ b/gfx/layers/FrameMetrics.h @@ -43,17 +43,17 @@ public: FrameMetrics() : mPresShellResolution(1) , mCompositionBounds(0, 0, 0, 0) , mDisplayPort(0, 0, 0, 0) , mCriticalDisplayPort(0, 0, 0, 0) , mScrollableRect(0, 0, 0, 0) , mCumulativeResolution() , mDevPixelsPerCSSPixel(1) - , mIsRoot(false) + , mIsRootContent(false) , mHasScrollgrab(false) , mScrollId(NULL_SCROLL_ID) , mScrollParentId(NULL_SCROLL_ID) , mScrollOffset(0, 0) , mZoom() , mUpdateScrollOffset(false) , mScrollGeneration(0) , mDoSmoothScroll(false) @@ -84,17 +84,17 @@ public: mUseDisplayPortMargins == aOther.mUseDisplayPortMargins && mCriticalDisplayPort.IsEqualEdges(aOther.mCriticalDisplayPort) && mViewport.IsEqualEdges(aOther.mViewport) && mScrollableRect.IsEqualEdges(aOther.mScrollableRect) && mPresShellResolution == aOther.mPresShellResolution && mCumulativeResolution == aOther.mCumulativeResolution && mDevPixelsPerCSSPixel == aOther.mDevPixelsPerCSSPixel && mPresShellId == aOther.mPresShellId && - mIsRoot == aOther.mIsRoot && + mIsRootContent == aOther.mIsRootContent && mScrollId == aOther.mScrollId && mScrollParentId == aOther.mScrollParentId && mScrollOffset == aOther.mScrollOffset && mSmoothScrollOffset == aOther.mSmoothScrollOffset && mHasScrollgrab == aOther.mHasScrollgrab && mUpdateScrollOffset == aOther.mUpdateScrollOffset && mScrollGeneration == aOther.mScrollGeneration && mExtraResolution == aOther.mExtraResolution && @@ -117,17 +117,17 @@ public: FrameMetrics def; def.mPresShellId = mPresShellId; return (def == *this); } bool IsRootScrollable() const { - return mIsRoot; + return mIsRootContent; } bool IsScrollable() const { return mScrollId != NULL_SCROLL_ID; } CSSToScreenScale2D DisplayportPixelsPerCSSPixel() const @@ -293,24 +293,24 @@ public: mDevPixelsPerCSSPixel = aDevPixelsPerCSSPixel; } const CSSToLayoutDeviceScale& GetDevPixelsPerCSSPixel() const { return mDevPixelsPerCSSPixel; } - void SetIsRoot(bool aIsRoot) + void SetIsRootContent(bool aIsRootContent) { - mIsRoot = aIsRoot; + mIsRootContent = aIsRootContent; } - bool GetIsRoot() const + bool IsRootContent() const { - return mIsRoot; + return mIsRootContent; } void SetHasScrollgrab(bool aHasScrollgrab) { mHasScrollgrab = aHasScrollgrab; } bool GetHasScrollgrab() const @@ -621,17 +621,17 @@ private: // The conversion factor between CSS pixels and device pixels for this frame. // This can vary based on a variety of things, such as reflowing-zoom. The // conversion factor for device pixels to layers pixels is just the // resolution. CSSToLayoutDeviceScale mDevPixelsPerCSSPixel; // Whether or not this is the root scroll frame for the root content document. - bool mIsRoot; + bool mIsRootContent; // Whether or not this frame is for an element marked 'scrollgrab'. bool mHasScrollgrab; // A unique ID assigned to each scrollable frame. ViewID mScrollId; // The ViewID of the scrollable frame to which overscroll should be handed off.
--- a/gfx/layers/apz/public/GeckoContentController.h +++ b/gfx/layers/apz/public/GeckoContentController.h @@ -74,17 +74,17 @@ public: const ScrollableLayerGuid& aGuid, uint64_t aInputBlockId) = 0; /** * Requests sending a mozbrowserasyncscroll domevent to embedder. * |aContentRect| is in CSS pixels, relative to the current cssPage. * |aScrollableSize| is the current content width/height in CSS pixels. */ - virtual void SendAsyncScrollDOMEvent(bool aIsRoot, + virtual void SendAsyncScrollDOMEvent(bool aIsRootContent, const CSSRect &aContentRect, const CSSSize &aScrollableSize) = 0; /** * Schedules a runnable to run on the controller/UI thread at some time * in the future. * This method must always be called on the controller thread. */
--- a/gfx/layers/apz/src/AsyncPanZoomController.cpp +++ b/gfx/layers/apz/src/AsyncPanZoomController.cpp @@ -1428,17 +1428,17 @@ AsyncPanZoomController::GetScrollWheelDe case ScrollWheelInput::SCROLLDELTA_PIXEL: { // aOutDeltaX is already in CSS pixels. break; } default: MOZ_ASSERT_UNREACHABLE("unexpected scroll delta type"); } - if (mFrameMetrics.GetIsRoot() && gfxPrefs::MouseWheelHasRootScrollDeltaOverride()) { + if (mFrameMetrics.IsRootContent() && gfxPrefs::MouseWheelHasRootScrollDeltaOverride()) { // Only apply delta multipliers if we're increasing the delta. double hfactor = double(gfxPrefs::MouseWheelRootHScrollDeltaFactor()) / 100; double vfactor = double(gfxPrefs::MouseWheelRootVScrollDeltaFactor()) / 100; if (vfactor > 1.0) { delta.x *= hfactor; } if (hfactor > 1.0) { delta.y *= vfactor; @@ -3185,29 +3185,29 @@ void AsyncPanZoomController::PostDelayed } void AsyncPanZoomController::SendAsyncScrollEvent() { nsRefPtr<GeckoContentController> controller = GetGeckoContentController(); if (!controller) { return; } - bool isRoot; + bool isRootContent; CSSRect contentRect; CSSSize scrollableSize; { ReentrantMonitorAutoEnter lock(mMonitor); - isRoot = mFrameMetrics.GetIsRoot(); + isRootContent = mFrameMetrics.IsRootContent(); scrollableSize = mFrameMetrics.GetScrollableRect().Size(); contentRect = mFrameMetrics.CalculateCompositedRectInCssPixels(); contentRect.MoveTo(mCurrentAsyncScrollOffset); } - controller->SendAsyncScrollDOMEvent(isRoot, contentRect, scrollableSize); + controller->SendAsyncScrollDOMEvent(isRootContent, contentRect, scrollableSize); } bool AsyncPanZoomController::Matches(const ScrollableLayerGuid& aGuid) { return aGuid == GetGuid(); } bool AsyncPanZoomController::HasTreeManager(const APZCTreeManager* aTreeManager) const
--- a/gfx/layers/apz/util/ChromeProcessController.h +++ b/gfx/layers/apz/util/ChromeProcessController.h @@ -44,17 +44,17 @@ public: virtual void HandleDoubleTap(const mozilla::CSSPoint& aPoint, Modifiers aModifiers, const ScrollableLayerGuid& aGuid) override {} virtual void HandleSingleTap(const mozilla::CSSPoint& aPoint, Modifiers aModifiers, const ScrollableLayerGuid& aGuid) override; virtual void HandleLongTap(const mozilla::CSSPoint& aPoint, Modifiers aModifiers, const ScrollableLayerGuid& aGuid, uint64_t aInputBlockId) override; - virtual void SendAsyncScrollDOMEvent(bool aIsRoot, const mozilla::CSSRect &aContentRect, + virtual void SendAsyncScrollDOMEvent(bool aIsRootContent, const mozilla::CSSRect &aContentRect, const mozilla::CSSSize &aScrollableSize) override {} virtual void NotifyAPZStateChange(const ScrollableLayerGuid& aGuid, APZStateChange aChange, int aArg) override; virtual void NotifyMozMouseScrollEvent(const FrameMetrics::ViewID& aScrollId, const nsString& aEvent) override; private: nsCOMPtr<nsIWidget> mWidget;
--- a/gfx/tests/gtest/TestAsyncPanZoomController.cpp +++ b/gfx/tests/gtest/TestAsyncPanZoomController.cpp @@ -775,17 +775,17 @@ protected: FrameMetrics GetPinchableFrameMetrics() { FrameMetrics fm; fm.SetCompositionBounds(ParentLayerRect(200, 200, 100, 200)); fm.SetScrollableRect(CSSRect(0, 0, 980, 1000)); fm.SetScrollOffset(CSSPoint(300, 300)); fm.SetZoom(CSSToParentLayerScale2D(2.0, 2.0)); // APZC only allows zooming on the root scrollable frame. - fm.SetIsRoot(true); + fm.SetIsRootContent(true); // the visible area of the document in CSS pixels is x=300 y=300 w=50 h=100 return fm; } void DoPinchTest(bool aShouldTriggerPinch, nsTArray<uint32_t> *aAllowedTouchBehaviors = nullptr) { apzc->SetFrameMetrics(GetPinchableFrameMetrics()); @@ -916,17 +916,17 @@ TEST_F(APZCPinchGestureDetectorTester, P TEST_F(APZCBasicTester, Overzoom) { // the visible area of the document in CSS pixels is x=10 y=0 w=100 h=100 FrameMetrics fm; fm.SetCompositionBounds(ParentLayerRect(0, 0, 100, 100)); fm.SetScrollableRect(CSSRect(0, 0, 125, 150)); fm.SetScrollOffset(CSSPoint(10, 0)); fm.SetZoom(CSSToParentLayerScale2D(1.0, 1.0)); - fm.SetIsRoot(true); + fm.SetIsRootContent(true); apzc->SetFrameMetrics(fm); MakeApzcZoomable(); EXPECT_CALL(*mcc, SendAsyncScrollDOMEvent(_,_,_)).Times(AtLeast(1)); EXPECT_CALL(*mcc, RequestContentRepaint(_)).Times(1); PinchWithPinchInputAndCheckStatus(apzc, 50, 50, 0.5, true);
--- a/layout/base/nsDisplayList.cpp +++ b/layout/base/nsDisplayList.cpp @@ -1577,26 +1577,26 @@ already_AddRefed<LayerManager> nsDisplay if (ensureMetricsForRootId && content) { ViewID scrollId = nsLayoutUtils::FindOrCreateIDFor(content); if (nsLayoutUtils::ContainsMetricsWithId(root, scrollId)) { ensureMetricsForRootId = false; } } if (addMetrics || ensureMetricsForRootId) { - bool isRoot = presContext->IsRootContentDocument(); + bool isRootContent = presContext->IsRootContentDocument(); nsRect viewport(aBuilder->ToReferenceFrame(frame), frame->GetSize()); root->SetFrameMetrics( nsLayoutUtils::ComputeFrameMetrics(frame, rootScrollFrame, content, aBuilder->FindReferenceFrameFor(frame), root, FrameMetrics::NULL_SCROLL_ID, viewport, Nothing(), - isRoot, containerParameters)); + isRootContent, containerParameters)); } else { // Set empty metrics to clear any metrics that might be on a recycled layer. root->SetFrameMetrics(nsTArray<FrameMetrics>()); } // NS_WARNING is debug-only, so don't even bother checking the conditions in // a release build. #ifdef DEBUG
--- a/layout/base/nsLayoutUtils.cpp +++ b/layout/base/nsLayoutUtils.cpp @@ -8164,17 +8164,17 @@ nsLayoutUtils::SetCSSViewport(nsIPresShe nsLayoutUtils::ComputeFrameMetrics(nsIFrame* aForFrame, nsIFrame* aScrollFrame, nsIContent* aContent, const nsIFrame* aReferenceFrame, Layer* aLayer, ViewID aScrollParentId, const nsRect& aViewport, const Maybe<nsRect>& aClipRect, - bool aIsRoot, + bool aIsRootContent, const ContainerLayerParameters& aContainerParameters) { nsPresContext* presContext = aForFrame->PresContext(); int32_t auPerDevPixel = presContext->AppUnitsPerDevPixel(); nsIPresShell* presShell = presContext->GetPresShell(); FrameMetrics metrics; metrics.SetViewport(CSSRect::FromAppUnits(aViewport)); @@ -8243,17 +8243,17 @@ nsLayoutUtils::ComputeFrameMetrics(nsIFr metrics.SetUsesContainerScrolling(scrollableFrame->UsesContainerScrolling()); } // If we have the scrollparent being the same as the scroll id, the // compositor-side code could get into an infinite loop while building the // overscroll handoff chain. MOZ_ASSERT(aScrollParentId == FrameMetrics::NULL_SCROLL_ID || scrollId != aScrollParentId); metrics.SetScrollId(scrollId); - metrics.SetIsRoot(aIsRoot); + metrics.SetIsRootContent(aIsRootContent); metrics.SetScrollParentId(aScrollParentId); if (scrollId != FrameMetrics::NULL_SCROLL_ID && !presContext->GetParentPresContext()) { if ((aScrollFrame && (aScrollFrame == presShell->GetRootScrollFrame())) || aContent == presShell->GetDocument()->GetDocumentElement()) { metrics.SetIsLayersIdRoot(true); } }
--- a/layout/generic/nsGfxScrollFrame.cpp +++ b/layout/generic/nsGfxScrollFrame.cpp @@ -3061,40 +3061,40 @@ ScrollFrameHelper::ComputeFrameMetrics(L bool needsParentLayerClip = true; if (gfxPrefs::LayoutUseContainersForRootFrames() && !mAddClipRectToLayer) { // For containerful frames, the clip is on the container frame. needsParentLayerClip = false; } nsPoint toReferenceFrame = mOuter->GetOffsetToCrossDoc(aContainerReferenceFrame); - bool isRoot = mIsRoot && mOuter->PresContext()->IsRootContentDocument(); + bool isRootContent = mIsRoot && mOuter->PresContext()->IsRootContentDocument(); Maybe<nsRect> parentLayerClip; if (needsParentLayerClip) { nsRect clip = nsRect(mScrollPort.TopLeft() + toReferenceFrame, nsLayoutUtils::CalculateCompositionSizeForFrame(mOuter)); - if (isRoot) { + if (isRootContent) { double res = mOuter->PresContext()->PresShell()->GetResolution(); clip.width = NSToCoordRound(clip.width / res); clip.height = NSToCoordRound(clip.height / res); } if (mAncestorClip && mAncestorClip->HasClip()) { clip = mAncestorClip->GetClipRect().Intersect(clip); } parentLayerClip = Some(clip); } bool thisScrollFrameUsesAsyncScrolling = nsLayoutUtils::UsesAsyncScrolling(mOuter); #if defined(MOZ_WIDGET_ANDROID) && !defined(MOZ_ANDROID_APZ) // Android without apzc (aka the java pan zoom code) only uses async scrolling // for the root scroll frame of the root content document. - if (!isRoot) { + if (!isRootContent) { thisScrollFrameUsesAsyncScrolling = false; } #endif if (!thisScrollFrameUsesAsyncScrolling) { if (parentLayerClip) { // If APZ is not enabled, we still need the displayport to be clipped // in the compositor. ParentLayerIntRect displayportClip = @@ -3119,17 +3119,17 @@ ScrollFrameHelper::ComputeFrameMetrics(L MOZ_ASSERT(mScrolledFrame->GetContent()); nsRect scrollport = mScrollPort + toReferenceFrame; *aOutput->AppendElement() = nsLayoutUtils::ComputeFrameMetrics( mScrolledFrame, mOuter, mOuter->GetContent(), aContainerReferenceFrame, aLayer, mScrollParentID, - scrollport, parentLayerClip, isRoot, aParameters); + scrollport, parentLayerClip, isRootContent, aParameters); } bool ScrollFrameHelper::IsRectNearlyVisible(const nsRect& aRect) const { // Use the right rect depending on if a display port is set. nsRect displayPort; bool usingDisplayport = nsLayoutUtils::GetDisplayPort(mOuter->GetContent(), &displayPort);
--- a/layout/ipc/RenderFrameParent.cpp +++ b/layout/ipc/RenderFrameParent.cpp @@ -193,29 +193,29 @@ public: if (mRenderFrame) { TabParent* browser = TabParent::GetFrom(mRenderFrame->Manager()); browser->HandleLongTap(aPoint, aModifiers, aGuid, aInputBlockId); } } void ClearRenderFrame() { mRenderFrame = nullptr; } - virtual void SendAsyncScrollDOMEvent(bool aIsRoot, + virtual void SendAsyncScrollDOMEvent(bool aIsRootContent, const CSSRect& aContentRect, const CSSSize& aContentSize) override { if (MessageLoop::current() != mUILoop) { mUILoop->PostTask( FROM_HERE, NewRunnableMethod(this, &RemoteContentController::SendAsyncScrollDOMEvent, - aIsRoot, aContentRect, aContentSize)); + aIsRootContent, aContentRect, aContentSize)); return; } - if (mRenderFrame && aIsRoot) { + if (mRenderFrame && aIsRootContent) { TabParent* browser = TabParent::GetFrom(mRenderFrame->Manager()); BrowserElementParent::DispatchAsyncScrollEvent(browser, aContentRect, aContentSize); } } virtual void PostDelayedTask(Task* aTask, int aDelayMs) override {