Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(318)

Side by Side Diff: polymer_1.2.3/bower_components/webcomponentsjs/ShadowDOM.js

Issue 1581713003: [third_party] add polymer 1.2.3 (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: 1.2.3 Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /** 1 /**
2 * @license 2 * @license
3 * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. 3 * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
4 * This code may only be used under the BSD style license found at http://polyme r.github.io/LICENSE.txt 4 * This code may only be used under the BSD style license found at http://polyme r.github.io/LICENSE.txt
5 * The complete set of authors may be found at http://polymer.github.io/AUTHORS. txt 5 * The complete set of authors may be found at http://polymer.github.io/AUTHORS. txt
6 * The complete set of contributors may be found at http://polymer.github.io/CON TRIBUTORS.txt 6 * The complete set of contributors may be found at http://polymer.github.io/CON TRIBUTORS.txt
7 * Code distributed by Google as part of the polymer project is also 7 * Code distributed by Google as part of the polymer project is also
8 * subject to an additional IP rights grant found at http://polymer.github.io/PA TENTS.txt 8 * subject to an additional IP rights grant found at http://polymer.github.io/PA TENTS.txt
9 */ 9 */
10 // @version 0.7.5 10 // @version 0.7.20
11 if (typeof WeakMap === "undefined") { 11 if (typeof WeakMap === "undefined") {
12 (function() { 12 (function() {
13 var defineProperty = Object.defineProperty; 13 var defineProperty = Object.defineProperty;
14 var counter = Date.now() % 1e9; 14 var counter = Date.now() % 1e9;
15 var WeakMap = function() { 15 var WeakMap = function() {
16 this.name = "__st" + (Math.random() * 1e9 >>> 0) + (counter++ + "__"); 16 this.name = "__st" + (Math.random() * 1e9 >>> 0) + (counter++ + "__");
17 }; 17 };
18 WeakMap.prototype = { 18 WeakMap.prototype = {
19 set: function(key, value) { 19 set: function(key, value) {
20 var entry = key[this.name]; 20 var entry = key[this.name];
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 function forwardMethodsToWrapper(constructors, names) { 299 function forwardMethodsToWrapper(constructors, names) {
300 constructors.forEach(function(constructor) { 300 constructors.forEach(function(constructor) {
301 names.forEach(function(name) { 301 names.forEach(function(name) {
302 constructor.prototype[name] = function() { 302 constructor.prototype[name] = function() {
303 var w = wrapIfNeeded(this); 303 var w = wrapIfNeeded(this);
304 return w[name].apply(w, arguments); 304 return w[name].apply(w, arguments);
305 }; 305 };
306 }); 306 });
307 }); 307 });
308 } 308 }
309 scope.addForwardingProperties = addForwardingProperties;
309 scope.assert = assert; 310 scope.assert = assert;
310 scope.constructorTable = constructorTable; 311 scope.constructorTable = constructorTable;
311 scope.defineGetter = defineGetter; 312 scope.defineGetter = defineGetter;
312 scope.defineWrapGetter = defineWrapGetter; 313 scope.defineWrapGetter = defineWrapGetter;
313 scope.forwardMethodsToWrapper = forwardMethodsToWrapper; 314 scope.forwardMethodsToWrapper = forwardMethodsToWrapper;
314 scope.isIdentifierName = isIdentifierName; 315 scope.isIdentifierName = isIdentifierName;
315 scope.isWrapper = isWrapper; 316 scope.isWrapper = isWrapper;
316 scope.isWrapperFor = isWrapperFor; 317 scope.isWrapperFor = isWrapperFor;
317 scope.mixin = mixin; 318 scope.mixin = mixin;
318 scope.nativePrototypeTable = nativePrototypeTable; 319 scope.nativePrototypeTable = nativePrototypeTable;
(...skipping 792 matching lines...) Expand 10 before | Expand all | Expand 10 after
1111 return eventPath.slice(); 1112 return eventPath.slice();
1112 }, 1113 },
1113 stopPropagation: function() { 1114 stopPropagation: function() {
1114 stopPropagationTable.set(this, true); 1115 stopPropagationTable.set(this, true);
1115 }, 1116 },
1116 stopImmediatePropagation: function() { 1117 stopImmediatePropagation: function() {
1117 stopPropagationTable.set(this, true); 1118 stopPropagationTable.set(this, true);
1118 stopImmediatePropagationTable.set(this, true); 1119 stopImmediatePropagationTable.set(this, true);
1119 } 1120 }
1120 }; 1121 };
1122 var supportsDefaultPrevented = function() {
1123 var e = document.createEvent("Event");
1124 e.initEvent("test", true, true);
1125 e.preventDefault();
1126 return e.defaultPrevented;
1127 }();
1128 if (!supportsDefaultPrevented) {
1129 Event.prototype.preventDefault = function() {
1130 if (!this.cancelable) return;
1131 unsafeUnwrap(this).preventDefault();
1132 Object.defineProperty(this, "defaultPrevented", {
1133 get: function() {
1134 return true;
1135 },
1136 configurable: true
1137 });
1138 };
1139 }
1121 registerWrapper(OriginalEvent, Event, document.createEvent("Event")); 1140 registerWrapper(OriginalEvent, Event, document.createEvent("Event"));
1122 function unwrapOptions(options) { 1141 function unwrapOptions(options) {
1123 if (!options || !options.relatedTarget) return options; 1142 if (!options || !options.relatedTarget) return options;
1124 return Object.create(options, { 1143 return Object.create(options, {
1125 relatedTarget: { 1144 relatedTarget: {
1126 value: unwrap(options.relatedTarget) 1145 value: unwrap(options.relatedTarget)
1127 } 1146 }
1128 }); 1147 });
1129 } 1148 }
1130 function registerGenericEvent(name, SuperEvent, prototype) { 1149 function registerGenericEvent(name, SuperEvent, prototype) {
(...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after
1738 this.previousSibling_ = undefined; 1757 this.previousSibling_ = undefined;
1739 this.treeScope_ = undefined; 1758 this.treeScope_ = undefined;
1740 } 1759 }
1741 var OriginalDocumentFragment = window.DocumentFragment; 1760 var OriginalDocumentFragment = window.DocumentFragment;
1742 var originalAppendChild = OriginalNode.prototype.appendChild; 1761 var originalAppendChild = OriginalNode.prototype.appendChild;
1743 var originalCompareDocumentPosition = OriginalNode.prototype.compareDocumentPo sition; 1762 var originalCompareDocumentPosition = OriginalNode.prototype.compareDocumentPo sition;
1744 var originalIsEqualNode = OriginalNode.prototype.isEqualNode; 1763 var originalIsEqualNode = OriginalNode.prototype.isEqualNode;
1745 var originalInsertBefore = OriginalNode.prototype.insertBefore; 1764 var originalInsertBefore = OriginalNode.prototype.insertBefore;
1746 var originalRemoveChild = OriginalNode.prototype.removeChild; 1765 var originalRemoveChild = OriginalNode.prototype.removeChild;
1747 var originalReplaceChild = OriginalNode.prototype.replaceChild; 1766 var originalReplaceChild = OriginalNode.prototype.replaceChild;
1748 var isIe = /Trident|Edge/.test(navigator.userAgent); 1767 var isIEOrEdge = /Trident|Edge/.test(navigator.userAgent);
1749 var removeChildOriginalHelper = isIe ? function(parent, child) { 1768 var removeChildOriginalHelper = isIEOrEdge ? function(parent, child) {
1750 try { 1769 try {
1751 originalRemoveChild.call(parent, child); 1770 originalRemoveChild.call(parent, child);
1752 } catch (ex) { 1771 } catch (ex) {
1753 if (!(parent instanceof OriginalDocumentFragment)) throw ex; 1772 if (!(parent instanceof OriginalDocumentFragment)) throw ex;
1754 } 1773 }
1755 } : function(parent, child) { 1774 } : function(parent, child) {
1756 originalRemoveChild.call(parent, child); 1775 originalRemoveChild.call(parent, child);
1757 }; 1776 };
1758 Node.prototype = Object.create(EventTarget.prototype); 1777 Node.prototype = Object.create(EventTarget.prototype);
1759 mixin(Node.prototype, { 1778 mixin(Node.prototype, {
(...skipping 956 matching lines...) Expand 10 before | Expand all | Expand 10 after
2716 function methodRequiresRendering(name) { 2735 function methodRequiresRendering(name) {
2717 Object.defineProperty(HTMLElement.prototype, name, { 2736 Object.defineProperty(HTMLElement.prototype, name, {
2718 value: function() { 2737 value: function() {
2719 scope.renderAllPending(); 2738 scope.renderAllPending();
2720 return unsafeUnwrap(this)[name].apply(unsafeUnwrap(this), arguments); 2739 return unsafeUnwrap(this)[name].apply(unsafeUnwrap(this), arguments);
2721 }, 2740 },
2722 configurable: true, 2741 configurable: true,
2723 enumerable: true 2742 enumerable: true
2724 }); 2743 });
2725 } 2744 }
2726 [ "getBoundingClientRect", "getClientRects", "scrollIntoView" ].forEach(method RequiresRendering); 2745 [ "focus", "getBoundingClientRect", "getClientRects", "scrollIntoView" ].forEa ch(methodRequiresRendering);
2727 registerWrapper(OriginalHTMLElement, HTMLElement, document.createElement("b")) ; 2746 registerWrapper(OriginalHTMLElement, HTMLElement, document.createElement("b")) ;
2728 scope.wrappers.HTMLElement = HTMLElement; 2747 scope.wrappers.HTMLElement = HTMLElement;
2729 scope.getInnerHTML = getInnerHTML; 2748 scope.getInnerHTML = getInnerHTML;
2730 scope.setInnerHTML = setInnerHTML; 2749 scope.setInnerHTML = setInnerHTML;
2731 })(window.ShadowDOMPolyfill); 2750 })(window.ShadowDOMPolyfill);
2732 2751
2733 (function(scope) { 2752 (function(scope) {
2734 "use strict"; 2753 "use strict";
2735 var HTMLElement = scope.wrappers.HTMLElement; 2754 var HTMLElement = scope.wrappers.HTMLElement;
2736 var mixin = scope.mixin; 2755 var mixin = scope.mixin;
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
3138 } 3157 }
3139 HTMLUnknownElement.prototype = Object.create(HTMLElement.prototype); 3158 HTMLUnknownElement.prototype = Object.create(HTMLElement.prototype);
3140 registerWrapper(OriginalHTMLUnknownElement, HTMLUnknownElement); 3159 registerWrapper(OriginalHTMLUnknownElement, HTMLUnknownElement);
3141 scope.wrappers.HTMLUnknownElement = HTMLUnknownElement; 3160 scope.wrappers.HTMLUnknownElement = HTMLUnknownElement;
3142 })(window.ShadowDOMPolyfill); 3161 })(window.ShadowDOMPolyfill);
3143 3162
3144 (function(scope) { 3163 (function(scope) {
3145 "use strict"; 3164 "use strict";
3146 var Element = scope.wrappers.Element; 3165 var Element = scope.wrappers.Element;
3147 var HTMLElement = scope.wrappers.HTMLElement; 3166 var HTMLElement = scope.wrappers.HTMLElement;
3148 var registerObject = scope.registerObject; 3167 var registerWrapper = scope.registerWrapper;
3149 var defineWrapGetter = scope.defineWrapGetter; 3168 var defineWrapGetter = scope.defineWrapGetter;
3169 var unsafeUnwrap = scope.unsafeUnwrap;
3170 var wrap = scope.wrap;
3171 var mixin = scope.mixin;
3150 var SVG_NS = "http://www.w3.org/2000/svg"; 3172 var SVG_NS = "http://www.w3.org/2000/svg";
3173 var OriginalSVGElement = window.SVGElement;
3151 var svgTitleElement = document.createElementNS(SVG_NS, "title"); 3174 var svgTitleElement = document.createElementNS(SVG_NS, "title");
3152 var SVGTitleElement = registerObject(svgTitleElement);
3153 var SVGElement = Object.getPrototypeOf(SVGTitleElement.prototype).constructor;
3154 if (!("classList" in svgTitleElement)) { 3175 if (!("classList" in svgTitleElement)) {
3155 var descr = Object.getOwnPropertyDescriptor(Element.prototype, "classList"); 3176 var descr = Object.getOwnPropertyDescriptor(Element.prototype, "classList");
3156 Object.defineProperty(HTMLElement.prototype, "classList", descr); 3177 Object.defineProperty(HTMLElement.prototype, "classList", descr);
3157 delete Element.prototype.classList; 3178 delete Element.prototype.classList;
3158 } 3179 }
3159 defineWrapGetter(SVGElement, "ownerSVGElement"); 3180 function SVGElement(node) {
3181 Element.call(this, node);
3182 }
3183 SVGElement.prototype = Object.create(Element.prototype);
3184 mixin(SVGElement.prototype, {
3185 get ownerSVGElement() {
3186 return wrap(unsafeUnwrap(this).ownerSVGElement);
3187 }
3188 });
3189 registerWrapper(OriginalSVGElement, SVGElement, document.createElementNS(SVG_N S, "title"));
3160 scope.wrappers.SVGElement = SVGElement; 3190 scope.wrappers.SVGElement = SVGElement;
3161 })(window.ShadowDOMPolyfill); 3191 })(window.ShadowDOMPolyfill);
3162 3192
3163 (function(scope) { 3193 (function(scope) {
3164 "use strict"; 3194 "use strict";
3165 var mixin = scope.mixin; 3195 var mixin = scope.mixin;
3166 var registerWrapper = scope.registerWrapper; 3196 var registerWrapper = scope.registerWrapper;
3167 var unwrap = scope.unwrap; 3197 var unwrap = scope.unwrap;
3168 var wrap = scope.wrap; 3198 var wrap = scope.wrap;
3169 var OriginalSVGUseElement = window.SVGUseElement; 3199 var OriginalSVGUseElement = window.SVGUseElement;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
3259 arguments[0] = unwrap(arguments[0]); 3289 arguments[0] = unwrap(arguments[0]);
3260 return unsafeUnwrap(this).createPattern.apply(unsafeUnwrap(this), argument s); 3290 return unsafeUnwrap(this).createPattern.apply(unsafeUnwrap(this), argument s);
3261 } 3291 }
3262 }); 3292 });
3263 registerWrapper(OriginalCanvasRenderingContext2D, CanvasRenderingContext2D, do cument.createElement("canvas").getContext("2d")); 3293 registerWrapper(OriginalCanvasRenderingContext2D, CanvasRenderingContext2D, do cument.createElement("canvas").getContext("2d"));
3264 scope.wrappers.CanvasRenderingContext2D = CanvasRenderingContext2D; 3294 scope.wrappers.CanvasRenderingContext2D = CanvasRenderingContext2D;
3265 })(window.ShadowDOMPolyfill); 3295 })(window.ShadowDOMPolyfill);
3266 3296
3267 (function(scope) { 3297 (function(scope) {
3268 "use strict"; 3298 "use strict";
3299 var addForwardingProperties = scope.addForwardingProperties;
3269 var mixin = scope.mixin; 3300 var mixin = scope.mixin;
3270 var registerWrapper = scope.registerWrapper; 3301 var registerWrapper = scope.registerWrapper;
3271 var setWrapper = scope.setWrapper; 3302 var setWrapper = scope.setWrapper;
3272 var unsafeUnwrap = scope.unsafeUnwrap; 3303 var unsafeUnwrap = scope.unsafeUnwrap;
3273 var unwrapIfNeeded = scope.unwrapIfNeeded; 3304 var unwrapIfNeeded = scope.unwrapIfNeeded;
3274 var wrap = scope.wrap; 3305 var wrap = scope.wrap;
3275 var OriginalWebGLRenderingContext = window.WebGLRenderingContext; 3306 var OriginalWebGLRenderingContext = window.WebGLRenderingContext;
3276 if (!OriginalWebGLRenderingContext) return; 3307 if (!OriginalWebGLRenderingContext) return;
3277 function WebGLRenderingContext(impl) { 3308 function WebGLRenderingContext(impl) {
3278 setWrapper(impl, this); 3309 setWrapper(impl, this);
3279 } 3310 }
3280 mixin(WebGLRenderingContext.prototype, { 3311 mixin(WebGLRenderingContext.prototype, {
3281 get canvas() { 3312 get canvas() {
3282 return wrap(unsafeUnwrap(this).canvas); 3313 return wrap(unsafeUnwrap(this).canvas);
3283 }, 3314 },
3284 texImage2D: function() { 3315 texImage2D: function() {
3285 arguments[5] = unwrapIfNeeded(arguments[5]); 3316 arguments[5] = unwrapIfNeeded(arguments[5]);
3286 unsafeUnwrap(this).texImage2D.apply(unsafeUnwrap(this), arguments); 3317 unsafeUnwrap(this).texImage2D.apply(unsafeUnwrap(this), arguments);
3287 }, 3318 },
3288 texSubImage2D: function() { 3319 texSubImage2D: function() {
3289 arguments[6] = unwrapIfNeeded(arguments[6]); 3320 arguments[6] = unwrapIfNeeded(arguments[6]);
3290 unsafeUnwrap(this).texSubImage2D.apply(unsafeUnwrap(this), arguments); 3321 unsafeUnwrap(this).texSubImage2D.apply(unsafeUnwrap(this), arguments);
3291 } 3322 }
3292 }); 3323 });
3324 var OriginalWebGLRenderingContextBase = Object.getPrototypeOf(OriginalWebGLRen deringContext.prototype);
3325 if (OriginalWebGLRenderingContextBase !== Object.prototype) {
3326 addForwardingProperties(OriginalWebGLRenderingContextBase, WebGLRenderingCon text.prototype);
3327 }
3293 var instanceProperties = /WebKit/.test(navigator.userAgent) ? { 3328 var instanceProperties = /WebKit/.test(navigator.userAgent) ? {
3294 drawingBufferHeight: null, 3329 drawingBufferHeight: null,
3295 drawingBufferWidth: null 3330 drawingBufferWidth: null
3296 } : {}; 3331 } : {};
3297 registerWrapper(OriginalWebGLRenderingContext, WebGLRenderingContext, instance Properties); 3332 registerWrapper(OriginalWebGLRenderingContext, WebGLRenderingContext, instance Properties);
3298 scope.wrappers.WebGLRenderingContext = WebGLRenderingContext; 3333 scope.wrappers.WebGLRenderingContext = WebGLRenderingContext;
3299 })(window.ShadowDOMPolyfill); 3334 })(window.ShadowDOMPolyfill);
3300 3335
3301 (function(scope) { 3336 (function(scope) {
3302 "use strict"; 3337 "use strict";
3338 var Node = scope.wrappers.Node;
3303 var GetElementsByInterface = scope.GetElementsByInterface; 3339 var GetElementsByInterface = scope.GetElementsByInterface;
3304 var NonElementParentNodeInterface = scope.NonElementParentNodeInterface; 3340 var NonElementParentNodeInterface = scope.NonElementParentNodeInterface;
3305 var ParentNodeInterface = scope.ParentNodeInterface; 3341 var ParentNodeInterface = scope.ParentNodeInterface;
3306 var SelectorsInterface = scope.SelectorsInterface; 3342 var SelectorsInterface = scope.SelectorsInterface;
3307 var mixin = scope.mixin; 3343 var mixin = scope.mixin;
3308 var registerObject = scope.registerObject; 3344 var registerObject = scope.registerObject;
3309 var DocumentFragment = registerObject(document.createDocumentFragment()); 3345 var registerWrapper = scope.registerWrapper;
3346 var OriginalDocumentFragment = window.DocumentFragment;
3347 function DocumentFragment(node) {
3348 Node.call(this, node);
3349 }
3350 DocumentFragment.prototype = Object.create(Node.prototype);
3310 mixin(DocumentFragment.prototype, ParentNodeInterface); 3351 mixin(DocumentFragment.prototype, ParentNodeInterface);
3311 mixin(DocumentFragment.prototype, SelectorsInterface); 3352 mixin(DocumentFragment.prototype, SelectorsInterface);
3312 mixin(DocumentFragment.prototype, GetElementsByInterface); 3353 mixin(DocumentFragment.prototype, GetElementsByInterface);
3313 mixin(DocumentFragment.prototype, NonElementParentNodeInterface); 3354 mixin(DocumentFragment.prototype, NonElementParentNodeInterface);
3355 registerWrapper(OriginalDocumentFragment, DocumentFragment, document.createDoc umentFragment());
3356 scope.wrappers.DocumentFragment = DocumentFragment;
3314 var Comment = registerObject(document.createComment("")); 3357 var Comment = registerObject(document.createComment(""));
3315 scope.wrappers.Comment = Comment; 3358 scope.wrappers.Comment = Comment;
3316 scope.wrappers.DocumentFragment = DocumentFragment;
3317 })(window.ShadowDOMPolyfill); 3359 })(window.ShadowDOMPolyfill);
3318 3360
3319 (function(scope) { 3361 (function(scope) {
3320 "use strict"; 3362 "use strict";
3321 var DocumentFragment = scope.wrappers.DocumentFragment; 3363 var DocumentFragment = scope.wrappers.DocumentFragment;
3322 var TreeScope = scope.TreeScope; 3364 var TreeScope = scope.TreeScope;
3323 var elementFromPoint = scope.elementFromPoint; 3365 var elementFromPoint = scope.elementFromPoint;
3324 var getInnerHTML = scope.getInnerHTML; 3366 var getInnerHTML = scope.getInnerHTML;
3325 var getTreeScope = scope.getTreeScope; 3367 var getTreeScope = scope.getTreeScope;
3326 var mixin = scope.mixin; 3368 var mixin = scope.mixin;
3327 var rewrap = scope.rewrap; 3369 var rewrap = scope.rewrap;
3328 var setInnerHTML = scope.setInnerHTML; 3370 var setInnerHTML = scope.setInnerHTML;
3329 var unsafeUnwrap = scope.unsafeUnwrap; 3371 var unsafeUnwrap = scope.unsafeUnwrap;
3330 var unwrap = scope.unwrap; 3372 var unwrap = scope.unwrap;
3373 var wrap = scope.wrap;
3331 var shadowHostTable = new WeakMap(); 3374 var shadowHostTable = new WeakMap();
3332 var nextOlderShadowTreeTable = new WeakMap(); 3375 var nextOlderShadowTreeTable = new WeakMap();
3333 function ShadowRoot(hostWrapper) { 3376 function ShadowRoot(hostWrapper) {
3334 var node = unwrap(unsafeUnwrap(hostWrapper).ownerDocument.createDocumentFrag ment()); 3377 var node = unwrap(unsafeUnwrap(hostWrapper).ownerDocument.createDocumentFrag ment());
3335 DocumentFragment.call(this, node); 3378 DocumentFragment.call(this, node);
3336 rewrap(node, this); 3379 rewrap(node, this);
3337 var oldShadowRoot = hostWrapper.shadowRoot; 3380 var oldShadowRoot = hostWrapper.shadowRoot;
3338 nextOlderShadowTreeTable.set(this, oldShadowRoot); 3381 nextOlderShadowTreeTable.set(this, oldShadowRoot);
3339 this.treeScope_ = new TreeScope(this, getTreeScope(oldShadowRoot || hostWrap per)); 3382 this.treeScope_ = new TreeScope(this, getTreeScope(oldShadowRoot || hostWrap per));
3340 shadowHostTable.set(this, hostWrapper); 3383 shadowHostTable.set(this, hostWrapper);
(...skipping 12 matching lines...) Expand all
3353 return nextOlderShadowTreeTable.get(this) || null; 3396 return nextOlderShadowTreeTable.get(this) || null;
3354 }, 3397 },
3355 get host() { 3398 get host() {
3356 return shadowHostTable.get(this) || null; 3399 return shadowHostTable.get(this) || null;
3357 }, 3400 },
3358 invalidateShadowRenderer: function() { 3401 invalidateShadowRenderer: function() {
3359 return shadowHostTable.get(this).invalidateShadowRenderer(); 3402 return shadowHostTable.get(this).invalidateShadowRenderer();
3360 }, 3403 },
3361 elementFromPoint: function(x, y) { 3404 elementFromPoint: function(x, y) {
3362 return elementFromPoint(this, this.ownerDocument, x, y); 3405 return elementFromPoint(this, this.ownerDocument, x, y);
3406 },
3407 getSelection: function() {
3408 return document.getSelection();
3409 },
3410 get activeElement() {
3411 var unwrappedActiveElement = unwrap(this).ownerDocument.activeElement;
3412 if (!unwrappedActiveElement || !unwrappedActiveElement.nodeType) return nu ll;
3413 var activeElement = wrap(unwrappedActiveElement);
3414 if (activeElement === this.host) {
3415 return null;
3416 }
3417 while (!this.contains(activeElement) && !this.host.contains(activeElement) ) {
3418 while (activeElement.parentNode) {
3419 activeElement = activeElement.parentNode;
3420 }
3421 if (activeElement.host) {
3422 activeElement = activeElement.host;
3423 } else {
3424 return null;
3425 }
3426 }
3427 return activeElement;
3363 } 3428 }
3364 }); 3429 });
3365 scope.wrappers.ShadowRoot = ShadowRoot; 3430 scope.wrappers.ShadowRoot = ShadowRoot;
3366 })(window.ShadowDOMPolyfill); 3431 })(window.ShadowDOMPolyfill);
3367 3432
3368 (function(scope) { 3433 (function(scope) {
3369 "use strict"; 3434 "use strict";
3370 var registerWrapper = scope.registerWrapper; 3435 var registerWrapper = scope.registerWrapper;
3371 var setWrapper = scope.setWrapper; 3436 var setWrapper = scope.setWrapper;
3372 var unsafeUnwrap = scope.unsafeUnwrap; 3437 var unsafeUnwrap = scope.unsafeUnwrap;
(...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after
3944 containsNode: function(node, allowPartial) { 4009 containsNode: function(node, allowPartial) {
3945 return unsafeUnwrap(this).containsNode(unwrapIfNeeded(node), allowPartial) ; 4010 return unsafeUnwrap(this).containsNode(unwrapIfNeeded(node), allowPartial) ;
3946 }, 4011 },
3947 getRangeAt: function(index) { 4012 getRangeAt: function(index) {
3948 return wrap(unsafeUnwrap(this).getRangeAt(index)); 4013 return wrap(unsafeUnwrap(this).getRangeAt(index));
3949 }, 4014 },
3950 removeRange: function(range) { 4015 removeRange: function(range) {
3951 unsafeUnwrap(this).removeRange(unwrap(range)); 4016 unsafeUnwrap(this).removeRange(unwrap(range));
3952 }, 4017 },
3953 selectAllChildren: function(node) { 4018 selectAllChildren: function(node) {
3954 unsafeUnwrap(this).selectAllChildren(unwrapIfNeeded(node)); 4019 unsafeUnwrap(this).selectAllChildren(node instanceof ShadowRoot ? unsafeUn wrap(node.host) : unwrapIfNeeded(node));
3955 }, 4020 },
3956 toString: function() { 4021 toString: function() {
3957 return unsafeUnwrap(this).toString(); 4022 return unsafeUnwrap(this).toString();
3958 } 4023 }
3959 }; 4024 };
3960 if (OriginalSelection.prototype.extend) { 4025 if (OriginalSelection.prototype.extend) {
3961 Selection.prototype.extend = function(node, offset) { 4026 Selection.prototype.extend = function(node, offset) {
3962 unsafeUnwrap(this).extend(unwrapIfNeeded(node), offset); 4027 unsafeUnwrap(this).extend(unwrapIfNeeded(node), offset);
3963 }; 4028 };
3964 } 4029 }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
4017 "use strict"; 4082 "use strict";
4018 var GetElementsByInterface = scope.GetElementsByInterface; 4083 var GetElementsByInterface = scope.GetElementsByInterface;
4019 var Node = scope.wrappers.Node; 4084 var Node = scope.wrappers.Node;
4020 var ParentNodeInterface = scope.ParentNodeInterface; 4085 var ParentNodeInterface = scope.ParentNodeInterface;
4021 var NonElementParentNodeInterface = scope.NonElementParentNodeInterface; 4086 var NonElementParentNodeInterface = scope.NonElementParentNodeInterface;
4022 var Selection = scope.wrappers.Selection; 4087 var Selection = scope.wrappers.Selection;
4023 var SelectorsInterface = scope.SelectorsInterface; 4088 var SelectorsInterface = scope.SelectorsInterface;
4024 var ShadowRoot = scope.wrappers.ShadowRoot; 4089 var ShadowRoot = scope.wrappers.ShadowRoot;
4025 var TreeScope = scope.TreeScope; 4090 var TreeScope = scope.TreeScope;
4026 var cloneNode = scope.cloneNode; 4091 var cloneNode = scope.cloneNode;
4092 var defineGetter = scope.defineGetter;
4027 var defineWrapGetter = scope.defineWrapGetter; 4093 var defineWrapGetter = scope.defineWrapGetter;
4028 var elementFromPoint = scope.elementFromPoint; 4094 var elementFromPoint = scope.elementFromPoint;
4029 var forwardMethodsToWrapper = scope.forwardMethodsToWrapper; 4095 var forwardMethodsToWrapper = scope.forwardMethodsToWrapper;
4030 var matchesNames = scope.matchesNames; 4096 var matchesNames = scope.matchesNames;
4031 var mixin = scope.mixin; 4097 var mixin = scope.mixin;
4032 var registerWrapper = scope.registerWrapper; 4098 var registerWrapper = scope.registerWrapper;
4033 var renderAllPending = scope.renderAllPending; 4099 var renderAllPending = scope.renderAllPending;
4034 var rewrap = scope.rewrap; 4100 var rewrap = scope.rewrap;
4035 var setWrapper = scope.setWrapper; 4101 var setWrapper = scope.setWrapper;
4036 var unsafeUnwrap = scope.unsafeUnwrap; 4102 var unsafeUnwrap = scope.unsafeUnwrap;
4037 var unwrap = scope.unwrap; 4103 var unwrap = scope.unwrap;
4038 var wrap = scope.wrap; 4104 var wrap = scope.wrap;
4039 var wrapEventTargetMethods = scope.wrapEventTargetMethods; 4105 var wrapEventTargetMethods = scope.wrapEventTargetMethods;
4040 var wrapNodeList = scope.wrapNodeList; 4106 var wrapNodeList = scope.wrapNodeList;
4041 var implementationTable = new WeakMap(); 4107 var implementationTable = new WeakMap();
4042 function Document(node) { 4108 function Document(node) {
4043 Node.call(this, node); 4109 Node.call(this, node);
4044 this.treeScope_ = new TreeScope(this, null); 4110 this.treeScope_ = new TreeScope(this, null);
4045 } 4111 }
4046 Document.prototype = Object.create(Node.prototype); 4112 Document.prototype = Object.create(Node.prototype);
4047 defineWrapGetter(Document, "documentElement"); 4113 defineWrapGetter(Document, "documentElement");
4048 defineWrapGetter(Document, "body"); 4114 defineWrapGetter(Document, "body");
4049 defineWrapGetter(Document, "head"); 4115 defineWrapGetter(Document, "head");
4116 defineGetter(Document, "activeElement", function() {
4117 var unwrappedActiveElement = unwrap(this).activeElement;
4118 if (!unwrappedActiveElement || !unwrappedActiveElement.nodeType) return null ;
4119 var activeElement = wrap(unwrappedActiveElement);
4120 while (!this.contains(activeElement)) {
4121 while (activeElement.parentNode) {
4122 activeElement = activeElement.parentNode;
4123 }
4124 if (activeElement.host) {
4125 activeElement = activeElement.host;
4126 } else {
4127 return null;
4128 }
4129 }
4130 return activeElement;
4131 });
4050 function wrapMethod(name) { 4132 function wrapMethod(name) {
4051 var original = document[name]; 4133 var original = document[name];
4052 Document.prototype[name] = function() { 4134 Document.prototype[name] = function() {
4053 return wrap(original.apply(unsafeUnwrap(this), arguments)); 4135 return wrap(original.apply(unsafeUnwrap(this), arguments));
4054 }; 4136 };
4055 } 4137 }
4056 [ "createComment", "createDocumentFragment", "createElement", "createElementNS ", "createEvent", "createEventNS", "createRange", "createTextNode" ].forEach(wra pMethod); 4138 [ "createComment", "createDocumentFragment", "createElement", "createElementNS ", "createEvent", "createEventNS", "createRange", "createTextNode" ].forEach(wra pMethod);
4057 var originalAdoptNode = document.adoptNode; 4139 var originalAdoptNode = document.adoptNode;
4058 function adoptNodeNoRemove(node, doc) { 4140 function adoptNodeNoRemove(node, doc) {
4059 originalAdoptNode.call(unsafeUnwrap(doc), unwrap(node)); 4141 originalAdoptNode.call(unsafeUnwrap(doc), unwrap(node));
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
4405 if (!nativeConstructor) return; 4487 if (!nativeConstructor) return;
4406 var element = document.createElement(tagName); 4488 var element = document.createElement(tagName);
4407 var wrapperConstructor = element.constructor; 4489 var wrapperConstructor = element.constructor;
4408 window[nativeConstructorName] = wrapperConstructor; 4490 window[nativeConstructorName] = wrapperConstructor;
4409 } 4491 }
4410 Object.keys(elements).forEach(overrideConstructor); 4492 Object.keys(elements).forEach(overrideConstructor);
4411 Object.getOwnPropertyNames(scope.wrappers).forEach(function(name) { 4493 Object.getOwnPropertyNames(scope.wrappers).forEach(function(name) {
4412 window[name] = scope.wrappers[name]; 4494 window[name] = scope.wrappers[name];
4413 }); 4495 });
4414 })(window.ShadowDOMPolyfill); 4496 })(window.ShadowDOMPolyfill);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698