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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/console/ConsoleViewport.js

Issue 2592483002: [DevTools] Move console viewport to console, rename StaticViewportControl. (Closed)
Patch Set: Created 3 years, 12 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 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * 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 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 13 matching lines...) Expand all
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 /** 31 /**
32 * @unrestricted 32 * @unrestricted
33 */ 33 */
34 UI.ViewportControl = class { 34 Console.ConsoleViewport = class {
35 /** 35 /**
36 * @param {!UI.ViewportControl.Provider} provider 36 * @param {!Console.ConsoleViewportProvider} provider
37 */ 37 */
38 constructor(provider) { 38 constructor(provider) {
39 this.element = createElement('div'); 39 this.element = createElement('div');
40 this.element.style.overflow = 'auto'; 40 this.element.style.overflow = 'auto';
41 this._topGapElement = this.element.createChild('div'); 41 this._topGapElement = this.element.createChild('div');
42 this._topGapElement.style.height = '0px'; 42 this._topGapElement.style.height = '0px';
43 this._topGapElement.style.color = 'transparent'; 43 this._topGapElement.style.color = 'transparent';
44 this._contentElement = this.element.createChild('div'); 44 this._contentElement = this.element.createChild('div');
45 this._bottomGapElement = this.element.createChild('div'); 45 this._bottomGapElement = this.element.createChild('div');
46 this._bottomGapElement.style.height = '0px'; 46 this._bottomGapElement.style.height = '0px';
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 121
122 invalidate() { 122 invalidate() {
123 delete this._cumulativeHeights; 123 delete this._cumulativeHeights;
124 delete this._cachedProviderElements; 124 delete this._cachedProviderElements;
125 this._itemCount = this._provider.itemCount(); 125 this._itemCount = this._provider.itemCount();
126 this.refresh(); 126 this.refresh();
127 } 127 }
128 128
129 /** 129 /**
130 * @param {number} index 130 * @param {number} index
131 * @return {?UI.ViewportElement} 131 * @return {?Console.ConsoleViewportElement}
132 */ 132 */
133 _providerElement(index) { 133 _providerElement(index) {
134 if (!this._cachedProviderElements) 134 if (!this._cachedProviderElements)
135 this._cachedProviderElements = new Array(this._itemCount); 135 this._cachedProviderElements = new Array(this._itemCount);
136 var element = this._cachedProviderElements[index]; 136 var element = this._cachedProviderElements[index];
137 if (!element) { 137 if (!element) {
138 element = this._provider.itemElement(index); 138 element = this._provider.itemElement(index);
139 this._cachedProviderElements[index] = element; 139 this._cachedProviderElements[index] = element;
140 } 140 }
141 return element; 141 return element;
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 // Proactively render more rows in case some of them will be collapsed wit hout triggering refresh. @see crbug.com/390169 349 // Proactively render more rows in case some of them will be collapsed wit hout triggering refresh. @see crbug.com/390169
350 this._lastActiveIndex = this._firstActiveIndex + Math.ceil(activeHeight / this._provider.minimumRowHeight()) - 1; 350 this._lastActiveIndex = this._firstActiveIndex + Math.ceil(activeHeight / this._provider.minimumRowHeight()) - 1;
351 this._lastActiveIndex = Math.min(this._lastActiveIndex, this._itemCount - 1); 351 this._lastActiveIndex = Math.min(this._lastActiveIndex, this._itemCount - 1);
352 } 352 }
353 353
354 var topGapHeight = this._cumulativeHeights[this._firstActiveIndex - 1] || 0; 354 var topGapHeight = this._cumulativeHeights[this._firstActiveIndex - 1] || 0;
355 var bottomGapHeight = 355 var bottomGapHeight =
356 this._cumulativeHeights[this._cumulativeHeights.length - 1] - this._cumu lativeHeights[this._lastActiveIndex]; 356 this._cumulativeHeights[this._cumulativeHeights.length - 1] - this._cumu lativeHeights[this._lastActiveIndex];
357 357
358 /** 358 /**
359 * @this {UI.ViewportControl} 359 * @this {Console.ConsoleViewport}
360 */ 360 */
361 function prepare() { 361 function prepare() {
362 this._topGapElement.style.height = topGapHeight + 'px'; 362 this._topGapElement.style.height = topGapHeight + 'px';
363 this._bottomGapElement.style.height = bottomGapHeight + 'px'; 363 this._bottomGapElement.style.height = bottomGapHeight + 'px';
364 this._topGapElement._active = !!topGapHeight; 364 this._topGapElement._active = !!topGapHeight;
365 this._bottomGapElement._active = !!bottomGapHeight; 365 this._bottomGapElement._active = !!bottomGapHeight;
366 this._contentElement.style.setProperty('height', '10000000px'); 366 this._contentElement.style.setProperty('height', '10000000px');
367 } 367 }
368 368
369 if (isInvalidating) 369 if (isInvalidating)
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 */ 570 */
571 _visibleHeight() { 571 _visibleHeight() {
572 // Use offsetHeight instead of clientHeight to avoid being affected by horiz ontal scroll. 572 // Use offsetHeight instead of clientHeight to avoid being affected by horiz ontal scroll.
573 return this.element.offsetHeight; 573 return this.element.offsetHeight;
574 } 574 }
575 }; 575 };
576 576
577 /** 577 /**
578 * @interface 578 * @interface
579 */ 579 */
580 UI.ViewportControl.Provider = function() {}; 580 Console.ConsoleViewportProvider = function() {};
581 581
582 UI.ViewportControl.Provider.prototype = { 582 Console.ConsoleViewportProvider.prototype = {
583 /** 583 /**
584 * @param {number} index 584 * @param {number} index
585 * @return {number} 585 * @return {number}
586 */ 586 */
587 fastHeight(index) { 587 fastHeight(index) {
588 return 0; 588 return 0;
589 }, 589 },
590 590
591 /** 591 /**
592 * @return {number} 592 * @return {number}
593 */ 593 */
594 itemCount() { 594 itemCount() {
595 return 0; 595 return 0;
596 }, 596 },
597 597
598 /** 598 /**
599 * @return {number} 599 * @return {number}
600 */ 600 */
601 minimumRowHeight() { 601 minimumRowHeight() {
602 return 0; 602 return 0;
603 }, 603 },
604 604
605 /** 605 /**
606 * @param {number} index 606 * @param {number} index
607 * @return {?UI.ViewportElement} 607 * @return {?Console.ConsoleViewportElement}
608 */ 608 */
609 itemElement(index) { 609 itemElement(index) {
610 return null; 610 return null;
611 } 611 }
612 }; 612 };
613 613
614 /** 614 /**
615 * @interface 615 * @interface
616 */ 616 */
617 UI.ViewportElement = function() {}; 617 Console.ConsoleViewportElement = function() {};
618 UI.ViewportElement.prototype = { 618 Console.ConsoleViewportElement.prototype = {
619 willHide() {}, 619 willHide() {},
620 620
621 wasShown() {}, 621 wasShown() {},
622 622
623 /** 623 /**
624 * @return {!Element} 624 * @return {!Element}
625 */ 625 */
626 element() {}, 626 element() {},
627 }; 627 };
628
629 /**
630 * @implements {UI.ViewportElement}
631 * @unrestricted
632 */
633 UI.StaticViewportElement = class {
634 /**
635 * @param {!Element} element
636 */
637 constructor(element) {
638 this._element = element;
639 }
640
641 /**
642 * @override
643 */
644 willHide() {
645 }
646
647 /**
648 * @override
649 */
650 wasShown() {
651 }
652
653 /**
654 * @override
655 * @return {!Element}
656 */
657 element() {
658 return this._element;
659 }
660 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698