function DNDManager() {
    /** @private {bookmarks.DragInfo} */
    this.dragInfo_ = null;

    /** @private {?DropDestination} */
    this.dropDestination_ = null;

    /** @private {bookmarks.DropIndicator} */
    this.dropIndicator_ = null;

    /** @private {Object<string, function(!Event)>} */
    this.documentListeners_ = null;

    /** @private {?bookmarks.AutoScroller} */
    this.autoScroller_ = null;

    /** @private {?bookmarks.AutoExpander} */
    this.autoExpander_ = null;

    /**
     * Used to instantly clearDragData in tests.
     * @private {!Object}
     */
    this.timerProxy_ = window;

    /**
     * The bookmark drag and drop indicator chip.
     * @private {BookmarksDndChipElement}
     */
    this.chip_ = null;

    /**
     * The element that initiated an internal drag. Not used once native drag
     * starts.
     * @private {BookmarkElement}
     */
    this.internalDragElement_ = null;

    /**
     * Where the internal drag started.
     * @private {?{x: number, y: number}}
     */
    this.mouseDownPos_ = null;
  }
/**
   * Manages drag and drop events for the bookmarks-app.
   *
   * This class manages an internal drag and drop based on mouse events and then
   * delegates to the native drag and drop in chrome.bookmarkManagerPrivate when
   * the mouse leaves the web content area. This allows us to render a drag and
   * drop chip UI for internal drags, while correctly handling and avoiding
   * conflict with native drags.
   *
   * The event flows look like
   *
   * mousedown -> mousemove -> mouseup
   *               |
   *               v
   *      dragstart/dragleave (if the drag leaves the browser window)
   *               |
   *               v
   * external drag -> bookmarkManagerPrivate.onDragEnter -> dragover -> drop
   *
   * @constructor
   */
Manages drag and drop events for the bookmarks-app.
This class manages an internal drag and drop based on mouse events and then
delegates to the native drag and drop in chrome.bookmarkManagerPrivate when
the mouse leaves the web content area. This allows us to render a drag and
drop chip UI for internal drags, while correctly handling and avoiding
conflict with native drags.

The event flows look like



@constructor
Manages drag and drop events for the bookmarks - app . This class manages an internal drag and drop based on mouse events and then delegates to the native drag and drop in chrome . bookmarkManagerPrivate when the mouse leaves the web content area . This allows us to render a drag and drop chip UI for internal drags while correctly handling and avoiding conflict with native drags . The event flows look like @constructor
function DNDManager() {
    this.dragInfo_ = null;
    this.dropDestination_ = null;
    this.dropIndicator_ = null;
    this.documentListeners_ = null;
    this.autoScroller_ = null;
    this.autoExpander_ = null;
    this.timerProxy_ = window;
    this.chip_ = null;
    this.internalDragElement_ = null;
    this.mouseDownPos_ = null;
  }
function DNDManager ( ) { this . dragInfo_ = null ; this . dropDestination_ = null ; this . dropIndicator_ = null ; this . documentListeners_ = null ; this . autoScroller_ = null ; this . autoExpander_ = null ; this . timerProxy_ = window ; this . chip_ = null ; this . internalDragElement_ = null ; this . mouseDownPos_ = null ; }
Manages drag and drop events for the bookmarks-app.
Manages drag and drop events for the bookmarks - app .
/** @private {bookmarks.DragInfo} */ /** @private {?DropDestination} */ /** @private {bookmarks.DropIndicator} */ /** @private {Object<string, function(!Event)>} */ /** @private {?bookmarks.AutoScroller} */ /** @private {?bookmarks.AutoExpander} */ /**
     * Used to instantly clearDragData in tests.
     * @private {!Object}
     */ /**
     * The bookmark drag and drop indicator chip.
     * @private {BookmarksDndChipElement}
     */ /**
     * The element that initiated an internal drag. Not used once native drag
     * starts.
     * @private {BookmarkElement}
     */ /**
     * Where the internal drag started.
     * @private {?{x: number, y: number}}
     */