| Index: polymer_1.2.3/bower_components/webcomponentsjs/ShadowDOM.js
|
| diff --git a/polymer_1.0.4/bower_components/webcomponentsjs/ShadowDOM.js b/polymer_1.2.3/bower_components/webcomponentsjs/ShadowDOM.js
|
| similarity index 97%
|
| copy from polymer_1.0.4/bower_components/webcomponentsjs/ShadowDOM.js
|
| copy to polymer_1.2.3/bower_components/webcomponentsjs/ShadowDOM.js
|
| index dc67ad93777369cd83fb5186f924d7761c387789..c3658c2cac1783736e905e49c14c80bd33adf76d 100644
|
| --- a/polymer_1.0.4/bower_components/webcomponentsjs/ShadowDOM.js
|
| +++ b/polymer_1.2.3/bower_components/webcomponentsjs/ShadowDOM.js
|
| @@ -7,7 +7,7 @@
|
| * Code distributed by Google as part of the polymer project is also
|
| * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
| */
|
| -// @version 0.7.5
|
| +// @version 0.7.20
|
| if (typeof WeakMap === "undefined") {
|
| (function() {
|
| var defineProperty = Object.defineProperty;
|
| @@ -306,6 +306,7 @@ window.ShadowDOMPolyfill = {};
|
| });
|
| });
|
| }
|
| + scope.addForwardingProperties = addForwardingProperties;
|
| scope.assert = assert;
|
| scope.constructorTable = constructorTable;
|
| scope.defineGetter = defineGetter;
|
| @@ -1118,6 +1119,24 @@ window.ShadowDOMPolyfill = {};
|
| stopImmediatePropagationTable.set(this, true);
|
| }
|
| };
|
| + var supportsDefaultPrevented = function() {
|
| + var e = document.createEvent("Event");
|
| + e.initEvent("test", true, true);
|
| + e.preventDefault();
|
| + return e.defaultPrevented;
|
| + }();
|
| + if (!supportsDefaultPrevented) {
|
| + Event.prototype.preventDefault = function() {
|
| + if (!this.cancelable) return;
|
| + unsafeUnwrap(this).preventDefault();
|
| + Object.defineProperty(this, "defaultPrevented", {
|
| + get: function() {
|
| + return true;
|
| + },
|
| + configurable: true
|
| + });
|
| + };
|
| + }
|
| registerWrapper(OriginalEvent, Event, document.createEvent("Event"));
|
| function unwrapOptions(options) {
|
| if (!options || !options.relatedTarget) return options;
|
| @@ -1745,8 +1764,8 @@ window.ShadowDOMPolyfill = {};
|
| var originalInsertBefore = OriginalNode.prototype.insertBefore;
|
| var originalRemoveChild = OriginalNode.prototype.removeChild;
|
| var originalReplaceChild = OriginalNode.prototype.replaceChild;
|
| - var isIe = /Trident|Edge/.test(navigator.userAgent);
|
| - var removeChildOriginalHelper = isIe ? function(parent, child) {
|
| + var isIEOrEdge = /Trident|Edge/.test(navigator.userAgent);
|
| + var removeChildOriginalHelper = isIEOrEdge ? function(parent, child) {
|
| try {
|
| originalRemoveChild.call(parent, child);
|
| } catch (ex) {
|
| @@ -2723,7 +2742,7 @@ window.ShadowDOMPolyfill = {};
|
| enumerable: true
|
| });
|
| }
|
| - [ "getBoundingClientRect", "getClientRects", "scrollIntoView" ].forEach(methodRequiresRendering);
|
| + [ "focus", "getBoundingClientRect", "getClientRects", "scrollIntoView" ].forEach(methodRequiresRendering);
|
| registerWrapper(OriginalHTMLElement, HTMLElement, document.createElement("b"));
|
| scope.wrappers.HTMLElement = HTMLElement;
|
| scope.getInnerHTML = getInnerHTML;
|
| @@ -3145,18 +3164,29 @@ window.ShadowDOMPolyfill = {};
|
| "use strict";
|
| var Element = scope.wrappers.Element;
|
| var HTMLElement = scope.wrappers.HTMLElement;
|
| - var registerObject = scope.registerObject;
|
| + var registerWrapper = scope.registerWrapper;
|
| var defineWrapGetter = scope.defineWrapGetter;
|
| + var unsafeUnwrap = scope.unsafeUnwrap;
|
| + var wrap = scope.wrap;
|
| + var mixin = scope.mixin;
|
| var SVG_NS = "http://www.w3.org/2000/svg";
|
| + var OriginalSVGElement = window.SVGElement;
|
| var svgTitleElement = document.createElementNS(SVG_NS, "title");
|
| - var SVGTitleElement = registerObject(svgTitleElement);
|
| - var SVGElement = Object.getPrototypeOf(SVGTitleElement.prototype).constructor;
|
| if (!("classList" in svgTitleElement)) {
|
| var descr = Object.getOwnPropertyDescriptor(Element.prototype, "classList");
|
| Object.defineProperty(HTMLElement.prototype, "classList", descr);
|
| delete Element.prototype.classList;
|
| }
|
| - defineWrapGetter(SVGElement, "ownerSVGElement");
|
| + function SVGElement(node) {
|
| + Element.call(this, node);
|
| + }
|
| + SVGElement.prototype = Object.create(Element.prototype);
|
| + mixin(SVGElement.prototype, {
|
| + get ownerSVGElement() {
|
| + return wrap(unsafeUnwrap(this).ownerSVGElement);
|
| + }
|
| + });
|
| + registerWrapper(OriginalSVGElement, SVGElement, document.createElementNS(SVG_NS, "title"));
|
| scope.wrappers.SVGElement = SVGElement;
|
| })(window.ShadowDOMPolyfill);
|
|
|
| @@ -3266,6 +3296,7 @@ window.ShadowDOMPolyfill = {};
|
|
|
| (function(scope) {
|
| "use strict";
|
| + var addForwardingProperties = scope.addForwardingProperties;
|
| var mixin = scope.mixin;
|
| var registerWrapper = scope.registerWrapper;
|
| var setWrapper = scope.setWrapper;
|
| @@ -3290,6 +3321,10 @@ window.ShadowDOMPolyfill = {};
|
| unsafeUnwrap(this).texSubImage2D.apply(unsafeUnwrap(this), arguments);
|
| }
|
| });
|
| + var OriginalWebGLRenderingContextBase = Object.getPrototypeOf(OriginalWebGLRenderingContext.prototype);
|
| + if (OriginalWebGLRenderingContextBase !== Object.prototype) {
|
| + addForwardingProperties(OriginalWebGLRenderingContextBase, WebGLRenderingContext.prototype);
|
| + }
|
| var instanceProperties = /WebKit/.test(navigator.userAgent) ? {
|
| drawingBufferHeight: null,
|
| drawingBufferWidth: null
|
| @@ -3300,20 +3335,27 @@ window.ShadowDOMPolyfill = {};
|
|
|
| (function(scope) {
|
| "use strict";
|
| + var Node = scope.wrappers.Node;
|
| var GetElementsByInterface = scope.GetElementsByInterface;
|
| var NonElementParentNodeInterface = scope.NonElementParentNodeInterface;
|
| var ParentNodeInterface = scope.ParentNodeInterface;
|
| var SelectorsInterface = scope.SelectorsInterface;
|
| var mixin = scope.mixin;
|
| var registerObject = scope.registerObject;
|
| - var DocumentFragment = registerObject(document.createDocumentFragment());
|
| + var registerWrapper = scope.registerWrapper;
|
| + var OriginalDocumentFragment = window.DocumentFragment;
|
| + function DocumentFragment(node) {
|
| + Node.call(this, node);
|
| + }
|
| + DocumentFragment.prototype = Object.create(Node.prototype);
|
| mixin(DocumentFragment.prototype, ParentNodeInterface);
|
| mixin(DocumentFragment.prototype, SelectorsInterface);
|
| mixin(DocumentFragment.prototype, GetElementsByInterface);
|
| mixin(DocumentFragment.prototype, NonElementParentNodeInterface);
|
| + registerWrapper(OriginalDocumentFragment, DocumentFragment, document.createDocumentFragment());
|
| + scope.wrappers.DocumentFragment = DocumentFragment;
|
| var Comment = registerObject(document.createComment(""));
|
| scope.wrappers.Comment = Comment;
|
| - scope.wrappers.DocumentFragment = DocumentFragment;
|
| })(window.ShadowDOMPolyfill);
|
|
|
| (function(scope) {
|
| @@ -3328,6 +3370,7 @@ window.ShadowDOMPolyfill = {};
|
| var setInnerHTML = scope.setInnerHTML;
|
| var unsafeUnwrap = scope.unsafeUnwrap;
|
| var unwrap = scope.unwrap;
|
| + var wrap = scope.wrap;
|
| var shadowHostTable = new WeakMap();
|
| var nextOlderShadowTreeTable = new WeakMap();
|
| function ShadowRoot(hostWrapper) {
|
| @@ -3360,6 +3403,28 @@ window.ShadowDOMPolyfill = {};
|
| },
|
| elementFromPoint: function(x, y) {
|
| return elementFromPoint(this, this.ownerDocument, x, y);
|
| + },
|
| + getSelection: function() {
|
| + return document.getSelection();
|
| + },
|
| + get activeElement() {
|
| + var unwrappedActiveElement = unwrap(this).ownerDocument.activeElement;
|
| + if (!unwrappedActiveElement || !unwrappedActiveElement.nodeType) return null;
|
| + var activeElement = wrap(unwrappedActiveElement);
|
| + if (activeElement === this.host) {
|
| + return null;
|
| + }
|
| + while (!this.contains(activeElement) && !this.host.contains(activeElement)) {
|
| + while (activeElement.parentNode) {
|
| + activeElement = activeElement.parentNode;
|
| + }
|
| + if (activeElement.host) {
|
| + activeElement = activeElement.host;
|
| + } else {
|
| + return null;
|
| + }
|
| + }
|
| + return activeElement;
|
| }
|
| });
|
| scope.wrappers.ShadowRoot = ShadowRoot;
|
| @@ -3951,7 +4016,7 @@ window.ShadowDOMPolyfill = {};
|
| unsafeUnwrap(this).removeRange(unwrap(range));
|
| },
|
| selectAllChildren: function(node) {
|
| - unsafeUnwrap(this).selectAllChildren(unwrapIfNeeded(node));
|
| + unsafeUnwrap(this).selectAllChildren(node instanceof ShadowRoot ? unsafeUnwrap(node.host) : unwrapIfNeeded(node));
|
| },
|
| toString: function() {
|
| return unsafeUnwrap(this).toString();
|
| @@ -4024,6 +4089,7 @@ window.ShadowDOMPolyfill = {};
|
| var ShadowRoot = scope.wrappers.ShadowRoot;
|
| var TreeScope = scope.TreeScope;
|
| var cloneNode = scope.cloneNode;
|
| + var defineGetter = scope.defineGetter;
|
| var defineWrapGetter = scope.defineWrapGetter;
|
| var elementFromPoint = scope.elementFromPoint;
|
| var forwardMethodsToWrapper = scope.forwardMethodsToWrapper;
|
| @@ -4047,6 +4113,22 @@ window.ShadowDOMPolyfill = {};
|
| defineWrapGetter(Document, "documentElement");
|
| defineWrapGetter(Document, "body");
|
| defineWrapGetter(Document, "head");
|
| + defineGetter(Document, "activeElement", function() {
|
| + var unwrappedActiveElement = unwrap(this).activeElement;
|
| + if (!unwrappedActiveElement || !unwrappedActiveElement.nodeType) return null;
|
| + var activeElement = wrap(unwrappedActiveElement);
|
| + while (!this.contains(activeElement)) {
|
| + while (activeElement.parentNode) {
|
| + activeElement = activeElement.parentNode;
|
| + }
|
| + if (activeElement.host) {
|
| + activeElement = activeElement.host;
|
| + } else {
|
| + return null;
|
| + }
|
| + }
|
| + return activeElement;
|
| + });
|
| function wrapMethod(name) {
|
| var original = document[name];
|
| Document.prototype[name] = function() {
|
|
|