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

Unified Diff: chrome/browser/resources/md_bookmarks/dnd_manager.js

Issue 2926763005: [MD Bookmarks] Refactor window timer mocking. (Closed)
Patch Set: address comments Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/md_bookmarks/dnd_manager.js
diff --git a/chrome/browser/resources/md_bookmarks/dnd_manager.js b/chrome/browser/resources/md_bookmarks/dnd_manager.js
index 71b1bcde1da76d1ec6d9c480ed6bf02d73021274..309bd95114365c24a6b78f1171d55443d8045e78 100644
--- a/chrome/browser/resources/md_bookmarks/dnd_manager.js
+++ b/chrome/browser/resources/md_bookmarks/dnd_manager.js
@@ -186,7 +186,7 @@ cr.define('bookmarks', function() {
/**
* @private {number|null} Timer id used to help minimize flicker.
*/
- this.removeDropIndicatorTimer_ = null;
+ this.removeDropIndicatorTimeoutId_ = null;
/**
* The element that had a style applied it to indicate the drop location.
@@ -203,9 +203,9 @@ cr.define('bookmarks', function() {
/**
* Used to instantly remove the indicator style in tests.
- * @private {function((Function|null|string), number)}
+ * @private {bookmarks.TimerProxy}
*/
- this.setTimeout = window.setTimeout.bind(window);
+ this.timerProxy = new bookmarks.TimerProxy();
}
DropIndicator.prototype = {
@@ -244,7 +244,7 @@ cr.define('bookmarks', function() {
* @param {DropDestination} dropDest
*/
update: function(dropDest) {
- window.clearTimeout(this.removeDropIndicatorTimer_);
+ this.timerProxy.clearTimeout(this.removeDropIndicatorTimeoutId_);
var indicatorElement = dropDest.element.getDropTarget();
var position = dropDest.position;
@@ -259,10 +259,11 @@ cr.define('bookmarks', function() {
finish: function() {
// The use of a timeout is in order to reduce flickering as we move
// between valid drop targets.
- window.clearTimeout(this.removeDropIndicatorTimer_);
- this.removeDropIndicatorTimer_ = this.setTimeout(function() {
- this.removeDropIndicatorStyle();
- }.bind(this), 100);
+ this.timerProxy.clearTimeout(this.removeDropIndicatorTimeoutId_);
+ this.removeDropIndicatorTimeoutId_ =
+ this.timerProxy.setTimeout(function() {
+ this.removeDropIndicatorStyle();
+ }.bind(this), 100);
},
};
@@ -285,9 +286,9 @@ cr.define('bookmarks', function() {
/**
* Used to instantly clearDragData in tests.
- * @private {function((Function|null|string), number)}
+ * @private {bookmarks.TimerProxy}
*/
- this.setTimeout_ = window.setTimeout.bind(window);
+ this.timerProxy_ = new bookmarks.TimerProxy();
}
DNDManager.prototype = {
@@ -386,7 +387,7 @@ cr.define('bookmarks', function() {
// Defer the clearing of the data so that the bookmark manager API's drop
// event doesn't clear the drop data before the web drop event has a
// chance to execute (on Mac).
- this.setTimeout_(function() {
+ this.timerProxy_.setTimeout(function() {
this.dragInfo_.clearDragData();
this.dropDestination_ = null;
this.dropIndicator_.finish();
@@ -638,11 +639,10 @@ cr.define('bookmarks', function() {
return !this.dragInfo_.isDraggingChildBookmark(overElement.itemId);
},
- disableTimeoutsForTesting: function() {
- this.setTimeout_ = function(fn) {
- fn();
- };
- this.dropIndicator_.setTimeout = this.setTimeout_;
+ /** @param {bookmarks.TimerProxy} timerProxy */
+ setTimerProxyForTesting: function(timerProxy) {
+ this.timerProxy_ = timerProxy;
+ this.dropIndicator_.timerProxy = timerProxy;
}
};
« no previous file with comments | « chrome/browser/resources/md_bookmarks/dnd_manager.html ('k') | chrome/browser/resources/md_bookmarks/timer_proxy.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698