--- a/gfx/layers/FrameMetrics.h+++ b/gfx/layers/FrameMetrics.h@@ -3,16 +3,17 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef GFX_FRAMEMETRICS_H #define GFX_FRAMEMETRICS_H #include <stdint.h> // for uint32_t, uint64_t #include "Units.h" // for CSSRect, CSSPixel, etc+#include "mozilla/DefineEnum.h" // for MOZ_DEFINE_ENUM #include "mozilla/HashFunctions.h" // for HashGeneric #include "mozilla/Maybe.h" #include "mozilla/gfx/BasePoint.h" // for BasePoint #include "mozilla/gfx/Rect.h" // for RoundedIn #include "mozilla/gfx/ScaleFactor.h" // for ScaleFactor #include "mozilla/gfx/Logging.h" // for Log #include "mozilla/StaticPtr.h" // for StaticAutoPtr #include "mozilla/TimeStamp.h" // for TimeStamp@@ -45,33 +46,32 @@ struct FrameMetrics { friend struct IPC::ParamTraits<mozilla::layers::FrameMetrics>; public: // We use IDs to identify frames across processes. typedef uint64_t ViewID; static const ViewID NULL_SCROLL_ID; // This container layer does not scroll. static const ViewID START_SCROLL_ID = 2; // This is the ID that scrolling subframes // will begin at.- enum ScrollOffsetUpdateType : uint8_t {- eNone, // The default; the scroll offset was not updated- eMainThread, // The scroll offset was updated by the main thread.- ePending, // The scroll offset was updated on the main thread, but not- // painted, so the layer texture data is still at the old- // offset.- eUserAction, // In an APZ repaint request, this means the APZ generated- // the scroll position based on user action (the alternative- // is eNone which means it's just request a repaint because- // it got a scroll update from the main thread).- eRestore, // The scroll offset was updated by the main thread, but as- // a restore from history or after a frame reconstruction.- // In this case, APZ can ignore the offset change if the- // user has done an APZ scroll already.-- eSentinel // For IPC use only- };+ MOZ_DEFINE_ENUM_WITH_BASE_AT_CLASS_SCOPE(+ ScrollOffsetUpdateType, uint8_t, (+ eNone, // The default; the scroll offset was not updated+ eMainThread, // The scroll offset was updated by the main thread.+ ePending, // The scroll offset was updated on the main thread, but not+ // painted, so the layer texture data is still at the old+ // offset.+ eUserAction, // In an APZ repaint request, this means the APZ generated+ // the scroll position based on user action (the alternative+ // is eNone which means it's just request a repaint because+ // it got a scroll update from the main thread).+ eRestore // The scroll offset was updated by the main thread, but as+ // a restore from history or after a frame reconstruction.+ // In this case, APZ can ignore the offset change if the+ // user has done an APZ scroll already.+ )); FrameMetrics() : mScrollId(NULL_SCROLL_ID) , mPresShellResolution(1) , mCompositionBounds(0, 0, 0, 0) , mDisplayPort(0, 0, 0, 0) , mCriticalDisplayPort(0, 0, 0, 0) , mScrollableRect(0, 0, 0, 0)

--- a/gfx/layers/apz/util/APZEventState.cpp+++ b/gfx/layers/apz/util/APZEventState.cpp@@ -485,21 +485,16 @@ APZEventState::ProcessAPZStateChange(Vie break; } case APZStateChange::eEndTouch: { mEndTouchIsClick = aArg; mActiveElementManager->HandleTouchEnd(); break; }- case APZStateChange::eSentinel:- // Should never happen, but we want this case branch to stop the compiler- // whining about unhandled values.- MOZ_ASSERT(false);- break; } } void APZEventState::ProcessClusterHit() { // If we hit a cluster of links then we shouldn't activate any of them, // as we will be showing the zoomed view. (This is only called on Fennec).