[scriptable, uuid(15860d52-fe2c-4ddd-ac50-9c23e24916c4)]
interface nsIDragSession : nsISupports

Attributes

 Set the current state of the drag, whether it can be dropped or not.
 usually the target "frame" sets this so the native system can render the correct feedback
attribute boolean canDrop
 The data transfer object for the current drag.
attribute nsIDOMDataTransfer dataTransfer
 Sets the action (copy, move, link, et.c) for the current drag 
attribute unsigned long dragAction
 Get the number of items that were dropped
readonly attribute unsigned long numDropItems
 The document where the drag was started, which will be null if the
 drag originated outside the application. Useful for determining if a drop
 originated in the same document.
readonly attribute nsIDOMDocument sourceDocument
 The dom node that was originally dragged to start the session, which will be null if the
 drag originated outside the application.
readonly attribute nsIDOMNode sourceNode
 Sets the current width and height of the drag target area. 
 It will contain the current size of the Frame that the drag is currently in
[noscript] attribute nsSize targetSize

Methods

 Get data from a Drag&Drop. Can be called while the drag is in process
 or after the drop has completed.  

 @param  aTransferable the transferable for the data to be put into
 @param  aItemIndex which of multiple drag items, zero-based
void getData(in nsITransferable aTransferable, in unsigned long aItemIndex)
 Check to set if any of the native data on the clipboard matches this data flavor
boolean isDataFlavorSupported(in string aDataFlavor)