rem: var genTextData = Components.classes["@mozilla.org/supports-wstring;1"].createInstance(Components.interfaces.nsISupportsWString); 
add: var genTextData = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); 
context: function BeginDragTree(event, tree, selArray, flavor){    var dragStarted = false;    var transArray = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray);    if ( !transArray )       return false;    // let's build the drag region    var region = null;    try {      region = Components.classes["@mozilla.org/gfx/region;1"].createInstance(Components.interfaces.nsIScriptableRegion);      region.init();      var obo = tree.treeBoxObject;      var bo = obo.treeBody.boxObject;      var obosel= obo.selection;      var rowX = bo.x;      var rowY = bo.y;      var rowHeight = obo.rowHeight;      var rowWidth = bo.width;      //add a rectangle for each visible selected row      for (var i = obo.getFirstVisibleRow(); i <= obo.getLastVisibleRow(); i ++)      {        if (obosel.isSelected(i))          region.unionRect(rowX, rowY, rowWidth, rowHeight);        rowY = rowY + rowHeight;      }            //and finally, clip the result to be sure we don't spill over...      region.intersectRect(bo.x, bo.y, bo.width, bo.height);    } catch(ex) {      dump("Error while building selection region: " + ex + "\n");      region = null;    }        var count = selArray.length;    debugDump("selArray.length = " + count + "\n");    for (i = 0; i < count; ++i ) {        var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);        if (!trans)           return false;        var genTextData = Components.classes["@mozilla.org/supports-wstring;1"].createInstance(Components.interfaces.nsISupportsWString);        if (!genTextData)           return false;        trans.addDataFlavor(flavor);        // get id (url)        var id = selArray[i];        genTextData.data = id;        debugDump("    ID #" + i + " = " + id + "\n");        trans.setTransferData ( flavor, genTextData, id.length * 2 );  // doublebyte byte data        // put it into the transferable as an |nsISupports|        var genTrans = trans.QueryInterface(Components.interfaces.nsISupports);        transArray.AppendElement(genTrans);    }    dragService.invokeDragSession ( event.target, transArray, region, nsIDragService.DRAGDROP_ACTION_COPY +    nsIDragService.DRAGDROP_ACTION_MOVE );    dragStarted = true;    return(!dragStarted);  // don't propagate the event if a drag has begun}
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8395/f7ad4265ef6a40ea01c54009718ef28974e67fe9/messengerdnd.js/buggy/mailnews/base/resources/content/messengerdnd.js