Bug 769653 - Initialize the transferable created in nsDOMDataTransfer::FillInExternalDragData; r=bzbarsky

This commit is contained in:
Ehsan Akhgari 2012-06-29 11:41:38 -04:00
Родитель ba92c971ed
Коммит fe6ae21d9b
1 изменённых файлов: 10 добавлений и 5 удалений

Просмотреть файл

@ -910,11 +910,6 @@ nsDOMDataTransfer::FillInExternalDragData(TransferItem& aItem, PRUint32 aIndex)
NS_PRECONDITION(mIsExternal, "Not an external drag");
if (!aItem.mData) {
nsCOMPtr<nsITransferable> trans =
do_CreateInstance("@mozilla.org/widget/transferable;1");
if (!trans)
return;
NS_ConvertUTF16toUTF8 utf8format(aItem.mFormat);
const char* format = utf8format.get();
if (strcmp(format, "text/plain") == 0)
@ -926,6 +921,16 @@ nsDOMDataTransfer::FillInExternalDragData(TransferItem& aItem, PRUint32 aIndex)
if (!dragSession)
return;
nsCOMPtr<nsITransferable> trans =
do_CreateInstance("@mozilla.org/widget/transferable;1");
if (!trans)
return;
nsCOMPtr<nsIDOMDocument> domDoc;
dragSession->GetSourceDocument(getter_AddRefs(domDoc));
nsCOMPtr<nsIDocument> doc = do_QueryInterface(domDoc);
trans->Init(doc ? doc->GetLoadContext() : nsnull);
trans->AddDataFlavor(format);
dragSession->GetData(trans, aIndex);