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

Side by Side Diff: chrome/browser/resources/settings/search_settings.js

Issue 2984843003: MD Settings: Convert all usages of .bind(this) to use ES6 arrow function. (Closed)
Patch Set: Resolve conflicts. Created 3 years, 5 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 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 cr.exportPath('settings'); 5 cr.exportPath('settings');
6 6
7 /** 7 /**
8 * A data structure used by callers to combine the results of multiple search 8 * A data structure used by callers to combine the results of multiple search
9 * requests. 9 * requests.
10 * 10 *
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 297
298 /** @override */ 298 /** @override */
299 exec() { 299 exec() {
300 var routePath = this.node.getAttribute('route-path'); 300 var routePath = this.node.getAttribute('route-path');
301 var subpageTemplate = 301 var subpageTemplate =
302 this.node['_content'].querySelector('settings-subpage'); 302 this.node['_content'].querySelector('settings-subpage');
303 subpageTemplate.setAttribute('route-path', routePath); 303 subpageTemplate.setAttribute('route-path', routePath);
304 assert(!this.node.if); 304 assert(!this.node.if);
305 this.node.if = true; 305 this.node.if = true;
306 306
307 return new Promise(function(resolve, reject) { 307 return new Promise((resolve, reject) => {
308 var parent = this.node.parentNode; 308 var parent = this.node.parentNode;
309 parent.async(function() { 309 parent.async(() => {
310 var renderedNode = 310 var renderedNode =
311 parent.querySelector('[route-path="' + routePath + '"]'); 311 parent.querySelector('[route-path="' + routePath + '"]');
312 // Register a SearchAndHighlightTask for the part of the DOM that was 312 // Register a SearchAndHighlightTask for the part of the DOM that was
313 // just rendered. 313 // just rendered.
314 this.request.queue_.addSearchAndHighlightTask( 314 this.request.queue_.addSearchAndHighlightTask(
315 new SearchAndHighlightTask(this.request, assert(renderedNode))); 315 new SearchAndHighlightTask(this.request, assert(renderedNode)));
316 resolve(); 316 resolve();
317 }.bind(this)); 317 });
318 }.bind(this)); 318 });
319 } 319 }
320 } 320 }
321 321
322 class SearchAndHighlightTask extends Task { 322 class SearchAndHighlightTask extends Task {
323 /** 323 /**
324 * @param {!settings.SearchRequest} request 324 * @param {!settings.SearchRequest} request
325 * @param {!Node} node 325 * @param {!Node} node
326 */ 326 */
327 constructor(request, node) { 327 constructor(request, node) {
328 super(request, node); 328 super(request, node);
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 while (1) { 445 while (1) {
446 var task = this.popNextTask_(); 446 var task = this.popNextTask_();
447 if (!task) { 447 if (!task) {
448 this.running_ = false; 448 this.running_ = false;
449 if (this.onEmptyCallback_) 449 if (this.onEmptyCallback_)
450 this.onEmptyCallback_(); 450 this.onEmptyCallback_();
451 return; 451 return;
452 } 452 }
453 453
454 this.running_ = true; 454 this.running_ = true;
455 window.requestIdleCallback(function() { 455 window.requestIdleCallback(() => {
456 if (!this.request_.canceled) { 456 if (!this.request_.canceled) {
457 task.exec().then(function() { 457 task.exec().then(() => {
458 this.running_ = false; 458 this.running_ = false;
459 this.consumePending_(); 459 this.consumePending_();
460 }.bind(this)); 460 });
461 } 461 }
462 // Nothing to do otherwise. Since the request corresponding to this 462 // Nothing to do otherwise. Since the request corresponding to this
463 // queue was canceled, the queue is disposed along with the request. 463 // queue was canceled, the queue is disposed along with the request.
464 }.bind(this)); 464 });
465 return; 465 return;
466 } 466 }
467 } 467 }
468 } 468 }
469 469
470 class SearchRequest { 470 class SearchRequest {
471 /** 471 /**
472 * @param {string} rawQuery 472 * @param {string} rawQuery
473 * @param {!HTMLElement} root 473 * @param {!HTMLElement} root
474 */ 474 */
(...skipping 14 matching lines...) Expand all
489 this.canceled = false; 489 this.canceled = false;
490 490
491 /** @private {boolean} */ 491 /** @private {boolean} */
492 this.foundMatches_ = false; 492 this.foundMatches_ = false;
493 493
494 /** @type {!PromiseResolver} */ 494 /** @type {!PromiseResolver} */
495 this.resolver = new PromiseResolver(); 495 this.resolver = new PromiseResolver();
496 496
497 /** @private {!TaskQueue} */ 497 /** @private {!TaskQueue} */
498 this.queue_ = new TaskQueue(this); 498 this.queue_ = new TaskQueue(this);
499 this.queue_.onEmpty(function() { 499 this.queue_.onEmpty(() => {
500 this.resolver.resolve(this); 500 this.resolver.resolve(this);
501 }.bind(this)); 501 });
502 } 502 }
503 503
504 /** 504 /**
505 * Fires this search request. 505 * Fires this search request.
506 */ 506 */
507 start() { 507 start() {
508 this.queue_.addTopLevelSearchTask( 508 this.queue_.addTopLevelSearchTask(
509 new TopLevelSearchTask(this, this.root_)); 509 new TopLevelSearchTask(this, this.root_));
510 } 510 }
511 511
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 request.canceled = true; 581 request.canceled = true;
582 request.resolver.resolve(request); 582 request.resolver.resolve(request);
583 }); 583 });
584 this.activeRequests_.clear(); 584 this.activeRequests_.clear();
585 } 585 }
586 586
587 this.lastSearchedText_ = text; 587 this.lastSearchedText_ = text;
588 var request = new SearchRequest(text, page); 588 var request = new SearchRequest(text, page);
589 this.activeRequests_.add(request); 589 this.activeRequests_.add(request);
590 request.start(); 590 request.start();
591 return request.resolver.promise.then(function() { 591 return request.resolver.promise.then(() => {
592 // Stop tracking requests that finished. 592 // Stop tracking requests that finished.
593 this.activeRequests_.delete(request); 593 this.activeRequests_.delete(request);
594 return request; 594 return request;
595 }.bind(this)); 595 });
596 } 596 }
597 } 597 }
598 cr.addSingletonGetter(SearchManagerImpl); 598 cr.addSingletonGetter(SearchManagerImpl);
599 599
600 /** @return {!SearchManager} */ 600 /** @return {!SearchManager} */
601 function getSearchManager() { 601 function getSearchManager() {
602 return SearchManagerImpl.getInstance(); 602 return SearchManagerImpl.getInstance();
603 } 603 }
604 604
605 /** 605 /**
606 * Sets the SearchManager singleton instance, useful for testing. 606 * Sets the SearchManager singleton instance, useful for testing.
607 * @param {!SearchManager} searchManager 607 * @param {!SearchManager} searchManager
608 */ 608 */
609 function setSearchManagerForTesting(searchManager) { 609 function setSearchManagerForTesting(searchManager) {
610 SearchManagerImpl.instance_ = searchManager; 610 SearchManagerImpl.instance_ = searchManager;
611 } 611 }
612 612
613 return { 613 return {
614 getSearchManager: getSearchManager, 614 getSearchManager: getSearchManager,
615 setSearchManagerForTesting: setSearchManagerForTesting, 615 setSearchManagerForTesting: setSearchManagerForTesting,
616 SearchRequest: SearchRequest, 616 SearchRequest: SearchRequest,
617 }; 617 };
618 }); 618 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698