Bug 673301, crash using non-string data with text/plain drags, r=josh

This commit is contained in:
Neil Deakin 2011-08-05 15:24:24 -04:00
Родитель c22ec0f7c0
Коммит 167630ac3d
3 изменённых файлов: 33 добавлений и 0 удалений

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

@ -428,6 +428,8 @@ nsClipboard::PasteboardDictFromTransferable(nsITransferable* aTransferable)
nsCOMPtr<nsISupports> genericDataWrapper;
rv = aTransferable->GetTransferData(flavorStr, getter_AddRefs(genericDataWrapper), &dataSize);
nsPrimitiveHelpers::CreateDataFromPrimitive(flavorStr, genericDataWrapper, &data, dataSize);
if (!data)
continue;
NSString* nativeString = [NSString stringWithCharacters:(const unichar*)data length:(dataSize / sizeof(PRUnichar))];
// be nice to Carbon apps, normalize the receiver's contents using Form C.

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

@ -110,6 +110,7 @@ _CHROME_FILES += native_menus_window.xul \
test_key_event_counts.xul \
test_bug596600.xul \
window_bug596600.xul \
test_bug673301.xul \
$(NULL)
endif

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

@ -0,0 +1,30 @@
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
type="text/css"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/javascript" src="chrome://mochikit/content/MochiKit/packed.js"/>
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
<body xmlns="http://www.w3.org/1999/xhtml">
<p id="display"></p>
<div id="content" style="display: none"/>
</body>
<script type="application/javascript">
var clipboard = Components.classes["@mozilla.org/widget/clipboard;1"]
.getService(Components.interfaces.nsIClipboard);
var transferable = Components.classes['@mozilla.org/widget/transferable;1']
.createInstance(Components.interfaces.nsITransferable);
transferable.addDataFlavor("text/unicode");
transferable.setTransferData("text/unicode", document, 4);
clipboard.setData(transferable, null, Components.interfaces.nsIClipboard.kGlobalClipboard);
SimpleTest.ok(true, "Didn't crash setting non-text data for text/unicode type");
</script>
</window>