diff options
Diffstat (limited to 'layout/style/LayerAnimationInfo.cpp')
-rw-r--r-- | layout/style/LayerAnimationInfo.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/layout/style/LayerAnimationInfo.cpp b/layout/style/LayerAnimationInfo.cpp new file mode 100644 index 000000000..8a119512b --- /dev/null +++ b/layout/style/LayerAnimationInfo.cpp @@ -0,0 +1,53 @@ +/* vim: set shiftwidth=2 tabstop=8 autoindent cindent expandtab: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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/. */ + +#include "LayerAnimationInfo.h" + +#include "nsCSSProps.h" // For nsCSSProps::PropHasFlags + +namespace mozilla { + +/* static */ const LayerAnimationInfo::Record LayerAnimationInfo::sRecords[] = + { { eCSSProperty_transform, + nsDisplayItem::TYPE_TRANSFORM, + nsChangeHint_UpdateTransformLayer }, + { eCSSProperty_opacity, + nsDisplayItem::TYPE_OPACITY, + nsChangeHint_UpdateOpacityLayer } }; + +#ifdef DEBUG +/* static */ void +LayerAnimationInfo::Initialize() +{ + for (const Record& record : sRecords) { + MOZ_ASSERT(nsCSSProps::PropHasFlags(record.mProperty, + CSS_PROPERTY_CAN_ANIMATE_ON_COMPOSITOR), + "CSS property with entry in LayerAnimation::sRecords does not " + "have the CSS_PROPERTY_CAN_ANIMATE_ON_COMPOSITOR flag"); + } + + // Check that every property with the flag for animating on the + // compositor has an entry in LayerAnimationInfo::sRecords. + for (nsCSSPropertyID prop = nsCSSPropertyID(0); + prop < eCSSProperty_COUNT; + prop = nsCSSPropertyID(prop + 1)) { + if (nsCSSProps::PropHasFlags(prop, + CSS_PROPERTY_CAN_ANIMATE_ON_COMPOSITOR)) { + bool found = false; + for (const Record& record : sRecords) { + if (record.mProperty == prop) { + found = true; + break; + } + } + MOZ_ASSERT(found, + "CSS property with the CSS_PROPERTY_CAN_ANIMATE_ON_COMPOSITOR " + "flag does not have an entry in LayerAnimationInfo::sRecords"); + } + } +} +#endif + +} // namespace mozilla |