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

Side by Side Diff: Source/devtools/front_end/ui/View.js

Issue 602783002: Devtools: make DOM traversal utilities climb shadow tree. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 2 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.
3 * Copyright (C) 2011 Google Inc. All Rights Reserved. 3 * Copyright (C) 2011 Google Inc. All Rights Reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 { 206 {
207 WebInspector.View.__assert(parentElement, "Attempt to attach view with n o parent element"); 207 WebInspector.View.__assert(parentElement, "Attempt to attach view with n o parent element");
208 208
209 // Update view hierarchy 209 // Update view hierarchy
210 if (this.element.parentElement !== parentElement) { 210 if (this.element.parentElement !== parentElement) {
211 if (this.element.parentElement) 211 if (this.element.parentElement)
212 this.detach(); 212 this.detach();
213 213
214 var currentParent = parentElement; 214 var currentParent = parentElement;
215 while (currentParent && !currentParent.__view) 215 while (currentParent && !currentParent.__view)
216 currentParent = currentParent.parentElement; 216 currentParent = currentParent.parentElementOrShadowHost();
217 217
218 if (currentParent) { 218 if (currentParent) {
219 this._parentView = currentParent.__view; 219 this._parentView = currentParent.__view;
220 this._parentView._children.push(this); 220 this._parentView._children.push(this);
221 this._isRoot = false; 221 this._isRoot = false;
222 } else 222 } else
223 WebInspector.View.__assert(this._isRoot, "Attempt to attach view to orphan node"); 223 WebInspector.View.__assert(this._isRoot, "Attempt to attach view to orphan node");
224 } else if (this._visible) { 224 } else if (this._visible) {
225 return; 225 return;
226 } 226 }
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 WebInspector.View._originalRemoveChildren = Element.prototype.removeChildren; 488 WebInspector.View._originalRemoveChildren = Element.prototype.removeChildren;
489 489
490 WebInspector.View._incrementViewCounter = function(parentElement, childElement) 490 WebInspector.View._incrementViewCounter = function(parentElement, childElement)
491 { 491 {
492 var count = (childElement.__viewCounter || 0) + (childElement.__view ? 1 : 0 ); 492 var count = (childElement.__viewCounter || 0) + (childElement.__view ? 1 : 0 );
493 if (!count) 493 if (!count)
494 return; 494 return;
495 495
496 while (parentElement) { 496 while (parentElement) {
497 parentElement.__viewCounter = (parentElement.__viewCounter || 0) + count ; 497 parentElement.__viewCounter = (parentElement.__viewCounter || 0) + count ;
498 parentElement = parentElement.parentElement; 498 parentElement = parentElement.parentElementOrShadowHost();
499 } 499 }
500 } 500 }
501 501
502 WebInspector.View._decrementViewCounter = function(parentElement, childElement) 502 WebInspector.View._decrementViewCounter = function(parentElement, childElement)
503 { 503 {
504 var count = (childElement.__viewCounter || 0) + (childElement.__view ? 1 : 0 ); 504 var count = (childElement.__viewCounter || 0) + (childElement.__view ? 1 : 0 );
505 if (!count) 505 if (!count)
506 return; 506 return;
507 507
508 while (parentElement) { 508 while (parentElement) {
509 parentElement.__viewCounter -= count; 509 parentElement.__viewCounter -= count;
510 parentElement = parentElement.parentElement; 510 parentElement = parentElement.parentElementOrShadowHost();
511 } 511 }
512 } 512 }
513 513
514 WebInspector.View.__assert = function(condition, message) 514 WebInspector.View.__assert = function(condition, message)
515 { 515 {
516 if (!condition) { 516 if (!condition) {
517 console.trace(); 517 console.trace();
518 throw new Error(message); 518 throw new Error(message);
519 } 519 }
520 } 520 }
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 { 643 {
644 WebInspector.View.__assert(!child.__viewCounter && !child.__view, "Attempt t o remove element containing view via regular DOM operation"); 644 WebInspector.View.__assert(!child.__viewCounter && !child.__view, "Attempt t o remove element containing view via regular DOM operation");
645 return WebInspector.View._originalRemoveChild.call(this, child); 645 return WebInspector.View._originalRemoveChild.call(this, child);
646 } 646 }
647 647
648 Element.prototype.removeChildren = function() 648 Element.prototype.removeChildren = function()
649 { 649 {
650 WebInspector.View.__assert(!this.__viewCounter, "Attempt to remove element c ontaining view via regular DOM operation"); 650 WebInspector.View.__assert(!this.__viewCounter, "Attempt to remove element c ontaining view via regular DOM operation");
651 WebInspector.View._originalRemoveChildren.call(this); 651 WebInspector.View._originalRemoveChildren.call(this);
652 } 652 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698