| Index: third_party/web-animations-js/sources/src/apply-preserving-inline-style.js
|
| diff --git a/third_party/web-animations-js/sources/src/apply-preserving-inline-style.js b/third_party/web-animations-js/sources/src/apply-preserving-inline-style.js
|
| deleted file mode 100644
|
| index 795be364529173046198d02931bc6509e1055248..0000000000000000000000000000000000000000
|
| --- a/third_party/web-animations-js/sources/src/apply-preserving-inline-style.js
|
| +++ /dev/null
|
| @@ -1,191 +0,0 @@
|
| -// Copyright 2014 Google Inc. All rights reserved.
|
| -//
|
| -// Licensed under the Apache License, Version 2.0 (the "License");
|
| -// you may not use this file except in compliance with the License.
|
| -// You may obtain a copy of the License at
|
| -//
|
| -// http://www.apache.org/licenses/LICENSE-2.0
|
| -//
|
| -// Unless required by applicable law or agreed to in writing, software
|
| -// distributed under the License is distributed on an "AS IS" BASIS,
|
| -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -// See the License for the specific language governing permissions and
|
| -// limitations under the License.
|
| -
|
| -(function(scope, testing) {
|
| -
|
| - var styleAttributes = {
|
| - cssText: 1,
|
| - length: 1,
|
| - parentRule: 1,
|
| - };
|
| -
|
| - var styleMethods = {
|
| - getPropertyCSSValue: 1,
|
| - getPropertyPriority: 1,
|
| - getPropertyValue: 1,
|
| - item: 1,
|
| - removeProperty: 1,
|
| - setProperty: 1,
|
| - };
|
| -
|
| - var styleMutatingMethods = {
|
| - removeProperty: 1,
|
| - setProperty: 1,
|
| - };
|
| -
|
| - function configureProperty(object, property, descriptor) {
|
| - descriptor.enumerable = true;
|
| - descriptor.configurable = true;
|
| - Object.defineProperty(object, property, descriptor);
|
| - }
|
| -
|
| - function AnimatedCSSStyleDeclaration(element) {
|
| - WEB_ANIMATIONS_TESTING && console.assert(!(element.style instanceof AnimatedCSSStyleDeclaration),
|
| - 'Element must not already have an animated style attached.');
|
| -
|
| - // Stores the inline style of the element on its behalf while the
|
| - // polyfill uses the element's inline style to simulate web animations.
|
| - // This is needed to fake regular inline style CSSOM access on the element.
|
| - this._surrogateStyle = document.createElementNS('http://www.w3.org/1999/xhtml', 'div').style;
|
| - this._style = element.style;
|
| - this._length = 0;
|
| - this._isAnimatedProperty = {};
|
| -
|
| - // Copy the inline style contents over to the surrogate.
|
| - for (var i = 0; i < this._style.length; i++) {
|
| - var property = this._style[i];
|
| - this._surrogateStyle[property] = this._style[property];
|
| - }
|
| - this._updateIndices();
|
| - }
|
| -
|
| - AnimatedCSSStyleDeclaration.prototype = {
|
| - get cssText() {
|
| - return this._surrogateStyle.cssText;
|
| - },
|
| - set cssText(text) {
|
| - var isAffectedProperty = {};
|
| - for (var i = 0; i < this._surrogateStyle.length; i++) {
|
| - isAffectedProperty[this._surrogateStyle[i]] = true;
|
| - }
|
| - this._surrogateStyle.cssText = text;
|
| - this._updateIndices();
|
| - for (var i = 0; i < this._surrogateStyle.length; i++) {
|
| - isAffectedProperty[this._surrogateStyle[i]] = true;
|
| - }
|
| - for (var property in isAffectedProperty) {
|
| - if (!this._isAnimatedProperty[property]) {
|
| - this._style.setProperty(property, this._surrogateStyle.getPropertyValue(property));
|
| - }
|
| - }
|
| - },
|
| - get length() {
|
| - return this._surrogateStyle.length;
|
| - },
|
| - get parentRule() {
|
| - return this._style.parentRule;
|
| - },
|
| - // Mirror the indexed getters and setters of the surrogate style.
|
| - _updateIndices: function() {
|
| - while (this._length < this._surrogateStyle.length) {
|
| - Object.defineProperty(this, this._length, {
|
| - configurable: true,
|
| - enumerable: false,
|
| - get: (function(index) {
|
| - return function() { return this._surrogateStyle[index]; };
|
| - })(this._length)
|
| - });
|
| - this._length++;
|
| - }
|
| - while (this._length > this._surrogateStyle.length) {
|
| - this._length--;
|
| - Object.defineProperty(this, this._length, {
|
| - configurable: true,
|
| - enumerable: false,
|
| - value: undefined
|
| - });
|
| - }
|
| - },
|
| - _set: function(property, value) {
|
| - this._style[property] = value;
|
| - this._isAnimatedProperty[property] = true;
|
| - },
|
| - _clear: function(property) {
|
| - this._style[property] = this._surrogateStyle[property];
|
| - delete this._isAnimatedProperty[property];
|
| - },
|
| - };
|
| -
|
| - // Wrap the style methods.
|
| - for (var method in styleMethods) {
|
| - AnimatedCSSStyleDeclaration.prototype[method] = (function(method, modifiesStyle) {
|
| - return function() {
|
| - var result = this._surrogateStyle[method].apply(this._surrogateStyle, arguments);
|
| - if (modifiesStyle) {
|
| - if (!this._isAnimatedProperty[arguments[0]])
|
| - this._style[method].apply(this._style, arguments);
|
| - this._updateIndices();
|
| - }
|
| - return result;
|
| - }
|
| - })(method, method in styleMutatingMethods);
|
| - }
|
| -
|
| - // Wrap the style.cssProperty getters and setters.
|
| - for (var property in document.documentElement.style) {
|
| - if (property in styleAttributes || property in styleMethods) {
|
| - continue;
|
| - }
|
| - (function(property) {
|
| - configureProperty(AnimatedCSSStyleDeclaration.prototype, property, {
|
| - get: function() {
|
| - return this._surrogateStyle[property];
|
| - },
|
| - set: function(value) {
|
| - this._surrogateStyle[property] = value;
|
| - this._updateIndices();
|
| - if (!this._isAnimatedProperty[property])
|
| - this._style[property] = value;
|
| - }
|
| - });
|
| - })(property);
|
| - }
|
| -
|
| - function ensureStyleIsPatched(element) {
|
| - if (element._webAnimationsPatchedStyle)
|
| - return;
|
| -
|
| - var animatedStyle = new AnimatedCSSStyleDeclaration(element);
|
| - try {
|
| - configureProperty(element, 'style', { get: function() { return animatedStyle; } });
|
| - } catch (_) {
|
| - // iOS and older versions of Safari (pre v7) do not support overriding an element's
|
| - // style object. Animations will clobber any inline styles as a result.
|
| - element.style._set = function(property, value) {
|
| - element.style[property] = value;
|
| - };
|
| - element.style._clear = function(property) {
|
| - element.style[property] = '';
|
| - };
|
| - }
|
| -
|
| - // We must keep a handle on the patched style to prevent it from getting GC'd.
|
| - element._webAnimationsPatchedStyle = element.style;
|
| - }
|
| -
|
| - scope.apply = function(element, property, value) {
|
| - ensureStyleIsPatched(element);
|
| - element.style._set(scope.propertyName(property), value);
|
| - };
|
| -
|
| - scope.clear = function(element, property) {
|
| - if (element._webAnimationsPatchedStyle) {
|
| - element.style._clear(scope.propertyName(property));
|
| - }
|
| - };
|
| -
|
| - if (WEB_ANIMATIONS_TESTING)
|
| - testing.ensureStyleIsPatched = ensureStyleIsPatched;
|
| -
|
| -})(webAnimations1, webAnimationsTesting);
|
|
|