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

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

Issue 2716683003: DO NOT COMMIT DevTools: reintroduce fullViewportUpdate (Closed)
Patch Set: hopefully clearer api Created 3 years, 9 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
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 365
366 this._partialViewportUpdate(prepare.bind(this)); 366 this._partialViewportUpdate(prepare.bind(this));
367 this._contentElement.style.removeProperty('height'); 367 this._contentElement.style.removeProperty('height');
368 // Should be the last call in the method as it might force layout. 368 // Should be the last call in the method as it might force layout.
369 if (shouldRestoreSelection) 369 if (shouldRestoreSelection)
370 this._restoreSelection(selection); 370 this._restoreSelection(selection);
371 if (this._stickToBottom) 371 if (this._stickToBottom)
372 this.element.scrollTop = 10000000; 372 this.element.scrollTop = 10000000;
373 } 373 }
374 374
375 fullViewportInvalidate() {
376 for (var i = 0; i < this._renderedItems.length; ++i)
377 this._renderedItems[i].willHide();
378 this._contentElement.removeChildren();
379 this.invalidate();
380 }
381
375 /** 382 /**
376 * @param {function()} prepare 383 * @param {function()} prepare
377 */ 384 */
378 _partialViewportUpdate(prepare) { 385 _partialViewportUpdate(prepare) {
379 var itemsToRender = new Set(); 386 var itemsToRender = new Set();
380 for (var i = this._firstActiveIndex; i <= this._lastActiveIndex; ++i) 387 for (var i = this._firstActiveIndex; i <= this._lastActiveIndex; ++i)
381 itemsToRender.add(this._providerElement(i)); 388 itemsToRender.add(this._providerElement(i));
382 var willBeHidden = this._renderedItems.filter(item => !itemsToRender.has(ite m)); 389 var willBeHidden = this._renderedItems.filter(item => item.element().parentE lement && !itemsToRender.has(item));
383 for (var i = 0; i < willBeHidden.length; ++i) 390 for (var i = 0; i < willBeHidden.length; ++i)
384 willBeHidden[i].willHide(); 391 willBeHidden[i].willHide();
385 prepare(); 392 prepare();
386 for (var i = 0; i < willBeHidden.length; ++i) 393 for (var i = 0; i < willBeHidden.length; ++i)
387 willBeHidden[i].element().remove(); 394 willBeHidden[i].element().remove();
388 395
389 var wasShown = []; 396 var wasShown = [];
390 var anchor = this._contentElement.firstChild; 397 var anchor = this._contentElement.firstChild;
391 for (var viewportElement of itemsToRender) { 398 for (var viewportElement of itemsToRender) {
392 var element = viewportElement.element(); 399 var element = viewportElement.element();
400 var shouldCallWasShown = !element.parentElement;
393 if (element !== anchor) { 401 if (element !== anchor) {
394 var shouldCallWasShown = !element.parentElement;
395 if (shouldCallWasShown) 402 if (shouldCallWasShown)
396 wasShown.push(viewportElement); 403 wasShown.push(viewportElement);
397 this._contentElement.insertBefore(element, anchor); 404 this._contentElement.insertBefore(element, anchor);
398 } else { 405 } else {
399 anchor = anchor.nextSibling; 406 anchor = anchor.nextSibling;
400 } 407 }
401 } 408 }
402 for (var i = 0; i < wasShown.length; ++i) 409 for (var i = 0; i < wasShown.length; ++i)
403 wasShown[i].wasShown(); 410 wasShown[i].wasShown();
404 this._renderedItems = Array.from(itemsToRender); 411 this._renderedItems = Array.from(itemsToRender);
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 Console.ConsoleViewportElement.prototype = { 605 Console.ConsoleViewportElement.prototype = {
599 willHide() {}, 606 willHide() {},
600 607
601 wasShown() {}, 608 wasShown() {},
602 609
603 /** 610 /**
604 * @return {!Element} 611 * @return {!Element}
605 */ 612 */
606 element() {}, 613 element() {},
607 }; 614 };
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698